1. 程式人生 > 程式設計 >laravel框架學習筆記之元件化開發實現方法

laravel框架學習筆記之元件化開發實現方法

本文例項講述了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相關內容感興趣的讀者可檢視本站專題:《Laravel框架入門與進階教程》、《php優秀開發框架總結》、《php面向物件程式設計入門教程》、《php+mysql資料庫操作入門教程》及《php常見資料庫操作技巧彙總》

希望本文所述對大家基於Laravel框架的PHP程式設計有所幫助。