当前位置:首页 > CMS教程 > 其它CMS > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2022-02-09 11:47:49 浏览: 评论:0 

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

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

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

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

视图

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

  1. /** 
  2.  * Perform post-registration booting of services. 
  3.  * 
  4.  * @return void 
  5.  */ 
  6.  public function boot() 
  7.  { 
  8.   $this->loadViewsFrom(__DIR__.'/path/to/views''courier'); 
  9.  } 

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

  1. Route::get('admin'function () { 
  2.  return view('courier::admin');  
  3. }); 

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

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

  1. "extra":{ 
  2.    "laravel":{ 
  3.      "providers":[ 
  4.        "ShineYork\\LaravelShop\\Wap\\Member\\Providers\\MemberServiceProvider" 
  5.      ] 
  6.    } 
  7.  } 

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

  1. namespace ShineYork\LaravelShop\Wap\Member\Providers; 
  2. use Illuminate\Support\Facades\Route; 
  3. use Illuminate\Support\ServiceProvider; 
  4. use Illuminate\Support\Arr; 
  5. class MemberServiceProvide extends ServiceProvider { 
  6.   protected $commands = [ 
  7.     \ShineYork\LaravelShop\Wap\Member\Console\Commands\InstallCommand::class
  8.   ]; 
  9.   public function boot(){ 
  10.     $this->commands($this->commands); 
  11.   } 

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

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

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

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

7.组件加载console

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

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

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

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

Tags: laravel组件化开发

分享到: