本文實例講述了laravel框架學習筆記之組件化開發實現方法。分享給大家供大家參考,具體如下:
1.第一個難點,就是把本地的組件引入到項目中,進行開發和測試,這個已經解決了
2.就是需要發布組件中的配置文件到項目中
3.就是怎么在組建中加載組建中的視圖view層
視圖
你需要告訴 laravel 視圖的位置才能使 laravel 加載包中的視圖。你可以通過服務提供者的 loadViewsFrom 方法。loadViewsFrom 方法接受兩個參數:視圖的路徑和包的名稱。比如,如果你的包名稱是“courier”,你應該像下面一樣在 boot 中添加:
1
2
3
4
5
6
7
8
9
|
/** * Perform post-registration booting of services. * * @return void */ public function boot() { $this ->loadViewsFrom(__DIR__. '/path/to/views' , 'courier' ); } |
包視圖的使用方式是通過 package::view 類似的語法引用的。所以,你可以像這樣從 courier 包中引入 admin 視圖:
1
2
3
|
Route::get( 'admin' , function () { return view( 'courier::admin' ); }); |
4.就是數據的遷移,和數據的填充,命令行安裝組件(數據庫和配置文件,以及一些其他基本的操作,需要在命令行執行)
需要把服務提供者寫入組件的composer中,供程序提前注冊
1
2
3
4
5
6
7
|
"extra" :{ "laravel" :{ "providers" :[ "ShineYork\\LaravelShop\\Wap\\Member\\Providers\\MemberServiceProvider" ] } } |
在服務提供者中提供了加載console的命令的方法,把寫好的命令類注入到方法中即可
1
2
3
4
5
6
7
8
9
10
11
12
|
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.命令行執行發布配置文件和視圖
1
2
3
|
//猜測可能是命令行發布的服務提供者 前面的命令是執行發布,后面的參數是發布服務提供者的位置 php artisan vendor:publish --provider= "Encore\Admin\AdminServiceProvider" |
6.數據庫遷移和數據填充
7.組件加載console
8.執行我們需要用代碼執行的命令
1
2
3
4
5
6
7
8
9
10
|
public function handle() { // call $this ->call( 'migrate' ); $this ->call( 'vendor:publish' , [ // 參數表示 => 參數值 "--provider" => "ShineYork\LaravelShop\Wap\Member\Providers\MemberServiceProvider" ]); // echo '這是測試wap-member的安裝命令'; } |
9.快速創建composer 組件基礎架構的組件(山藥開發的組件)
1
|
composer global require shineyork/laravel-package-maker:2.0 |
希望本文所述對大家基于Laravel框架的PHP程序設計有所幫助。
原文鏈接:https://blog.csdn.net/qq_22640823/article/details/102836536