在使用php的laravel框架進(jìn)行項(xiàng)目開發(fā)時,我們經(jīng)常會用到laravel框架自帶的門面和服務(wù)提供者,下面我們就來探究一下如何編寫自己的門面和服務(wù)提供者(以下代碼基于laravel 5.2*編寫)。
一、創(chuàng)建自定義類
在app目錄下面建立一個utilsToolBar.php文件,這是我們的工具類,里面是我們定義的代碼。
<?phpnamespace AppUtils;class ToolBar{ public function get() { return 'Hello my facade'; }}
二、創(chuàng)建服務(wù)提供者
在項(xiàng)目的根目錄下執(zhí)行命令:php artisan make:provider ToolServiceProvider創(chuàng)建一個服務(wù)提供者,并將我們剛才編寫的工具類注冊到容器里面。
<?phpnamespace AppProviders;use IlluminateSupportServiceProvider;use AppUtilsToolBar;class ToolServiceProvider extends ServiceProvider{ /** * Bootstrap the application services. * * @return void */ public function boot() { // } /** * Register the application services. * * @return void */ public function register() { $this->app->bind('tool',function(){ ???????????return?new?ToolBar(); ???????}); ???}}
三、組冊服務(wù)提供者
在configapp.php文件中的providers屬性里面注冊我們剛添加的服務(wù)提供者,即添加:
AppProvidersToolServiceProvider::class,
四、創(chuàng)建門面類
在app目錄下面創(chuàng)建一個門面類,AppFacadesTool.php,目錄這里是我自己建立的,這個可以隨便創(chuàng)建。只要在后面注冊的時候一致就可以。代碼如下:
<?phpnamespace AppFacades;use IlluminateSupportFacadesFacade;class Tool extends Facade{ protected static function getFacadeAccessor() { return 'tool'; }}
五、組冊門面類
在configapp.php的aliases屬性中追加下面的代碼:
'Tool'?=>?AppFacadesTool::class,
完成以上步驟,我們可以調(diào)用測試一下創(chuàng)建的門面和服務(wù)提供者是否有效
在routesconsole.php里面添加下面的代碼:
Artisan::command('testFacade',function(){ ????dd(tool::get());});
然后在項(xiàng)目根目錄的終端里面,調(diào)用下面的命令:
php artisan testFacade
如果輸出 Hello my facade 則說明都注冊成功,接下來,我們可以在項(xiàng)目的任何地方使用該自定義門面啦。
在使用php的laravel框架進(jìn)行項(xiàng)目開發(fā)時,我們經(jīng)常會用到laravel框架自帶的門面和服務(wù)提供者,下面我們就來探究一下如何編寫自己的門面和服務(wù)提供者(以下代碼基于laravel 5.2*編寫)。
相關(guān)教程:laravel視頻教程