laravel框架学习笔记之组件化开发实现方法


Posted in PHP onFebruary 01, 2020

本文实例讲述了laravel框架学习笔记之组件化开发实现方法。分享给大家供大家参考,具体如下:

1.第一个难点,就是把本地的组件引入到项目中,进行开发和测试,这个已经解决了

2.就是需要发布组件中的配置文件到项目中

3.就是怎么在组建中加载组建中的视图view层

视图

你需要告诉 laravel 视图的位置才能使 laravel 加载包中的视图。你可以通过服务提供者的 loadViewsFrom 方法。loadViewsFrom 方法接受两个参数:视图的路径和包的名称。比如,如果你的包名称是“courier”,你应该像下面一样在 boot 中添加:

/**
 * Perform post-registration booting of services.
 *
 * @return void
 */
 public function boot()
 {
  $this->loadViewsFrom(__DIR__.'/path/to/views', 'courier');
 }

包视图的使用方式是通过 package::view 类似的语法引用的。所以,你可以像这样从 courier 包中引入 admin 视图:

Route::get('admin', function () {
 return view('courier::admin'); 
});

4.就是数据的迁移,和数据的填充,命令行安装组件(数据库和配置文件,以及一些其他基本的操作,需要在命令行执行)

需要把服务提供者写入组件的composer中,供程序提前注册

"extra":{
    "laravel":{
      "providers":[
        "ShineYork\\LaravelShop\\Wap\\Member\\Providers\\MemberServiceProvider"
      ]
    }
  }

在服务提供者中提供了加载console的命令的方法,把写好的命令类注入到方法中即可

namespace ShineYork\LaravelShop\Wap\Member\Providers;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Arr;
class MemberServiceProvide extends ServiceProvider {
  protected $commands = [
    \ShineYork\LaravelShop\Wap\Member\Console\Commands\InstallCommand::class,
  ];
  public function boot(){
    $this->commands($this->commands);
  }
}

5.命令行执行发布配置文件和视图

//猜测可能是命令行发布的服务提供者 前面的命令是执行发布,后面的参数是发布服务提供者的位置

php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"

6.数据库迁移和数据填充

7.组件加载console

8.执行我们需要用代码执行的命令

public function handle()
{
    // call
    $this->call('migrate');
    $this->call('vendor:publish', [
     // 参数表示 => 参数值
     "--provider"=>"ShineYork\LaravelShop\Wap\Member\Providers\MemberServiceProvider"
    ]);
    // echo '这是测试wap-member的安装命令';
}

9.快速创建composer 组件基础架构的组件(山药开发的组件)

composer global require shineyork/laravel-package-maker:2.0

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php分页函数
Jul 08 PHP
php xml实例 留言本
Mar 20 PHP
PHP 中检查或过滤IP地址的实现代码
Nov 27 PHP
PHP用身份证号获取星座和生肖的方法
Nov 07 PHP
php正则匹配html中带class的div并选取其中内容的方法
Jan 13 PHP
PHP函数extension_loaded()用法实例
Jan 19 PHP
PHP 前加at符合@的作用解析
Jul 31 PHP
提高php编程效率技巧
Aug 13 PHP
PHP实现用户登录的案例代码
May 10 PHP
PHP 多进程与信号中断实现多任务常驻内存管理实例方法
Oct 04 PHP
laravel 解决多库下的DB::transaction()事务失效问题
Oct 21 PHP
php判断数组是否为空的实例方法
May 10 PHP
php正则表达式使用方法整理集合
Jan 31 #PHP
laravel邮件发送的实现代码示例
Jan 31 #PHP
laravel5.6 框架邮件队列database驱动简单demo示例
Jan 26 #PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
Jan 26 #PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
Jan 26 #PHP
Laravel框架自定义分页样式操作示例
Jan 26 #PHP
php数组函数array_push()、array_pop()及array_shift()简单用法示例
Jan 26 #PHP
You might like
discuz Passport 通行证 整合笔记
2008/06/30 PHP
PHP Session机制简介及用法
2014/08/19 PHP
php按字符无乱码截取中文的方法
2015/03/27 PHP
jQuery $.each的用法说明
2010/03/22 Javascript
关于可运行代码无法正常执行的使用说明
2010/05/13 Javascript
jQuery 表单验证扩展(四)
2010/10/20 Javascript
jQuery基于当前元素进行下一步的遍历
2014/05/20 Javascript
在JS数组特定索引处指定位置插入元素的技巧
2014/08/24 Javascript
利用js实现禁止复制文本信息
2015/06/03 Javascript
如何实现JavaScript动态加载CSS和JS文件
2020/12/28 Javascript
BootStrap中按钮点击后被禁用按钮的最佳实现方法
2016/09/23 Javascript
学习vue.js条件渲染
2016/12/03 Javascript
BootStrap框架中的data-[ ]自定义属性理解(推荐)
2017/02/14 Javascript
VUE中使用Vue-resource完成交互
2017/07/21 Javascript
简单了解vue中的v-if和v-show的区别
2019/10/08 Javascript
JS常见错误(Error)及处理方案详解
2020/07/02 Javascript
[02:33]DOTA2亚洲邀请赛趣味视频之吐真话筒
2018/03/31 DOTA
对Python的Django框架中的项目进行单元测试的方法
2016/04/11 Python
wxpython中Textctrl回车事件无效的解决方法
2016/07/21 Python
python OpenCV学习笔记直方图反向投影的实现
2018/02/07 Python
Python装饰器(decorator)定义与用法详解
2018/02/09 Python
python实现视频读取和转化图片
2019/12/10 Python
Python实现初始化不同的变量类型为空值
2020/06/02 Python
Python venv虚拟环境配置过程解析
2020/07/08 Python
什么是静态路由,其特点是什么?什么是动态路由,其特点是什么?
2013/07/26 面试题
《一株紫丁香》教学反思
2014/02/19 职场文书
2014年父亲节活动方案
2014/03/06 职场文书
会计核算科岗位职责
2014/03/19 职场文书
党支部综合考察材料
2014/05/19 职场文书
学校运动会霸气口号
2014/06/07 职场文书
公司董事长岗位职责
2014/06/08 职场文书
2015年大学生暑期实习报告
2015/07/13 职场文书
初中班主任心得体会
2016/01/07 职场文书
创业计划书之密室逃脱
2019/11/08 职场文书
《辉夜大小姐想让我告白》第三季正式预告
2022/03/20 日漫
Python OpenCV实现图形检测示例详解
2022/04/08 Python