Laravel創建 Service Provider 測試實例
阿新 • • 發佈:2018-05-05
php laravel ServiceProvider 服務提供者 從某種意義上說,服務提供者有點類似HTTP控制器,HTTP控制器用於為相關路由註冊提供統一管理,而服務提供者用於為相關服務容器提供統一綁定場所,此外服務提供者還可以做一些初始化啟動操作。Laravel的每個核心組件都對應一個服務提供者,可以這麽說,服務提供者是Laravel的心臟,是Laravel的核心,核心組件類在這裏完成註冊、初始化以供後續調用。
:
既然這麽重要,那麽如何在自己的Laravel應用中定義和使用服務提供者呢?
1、定義服務類
我們這裏先定義一個綁定到容器的測試類TestService
,為了對類的定義加以約束,我們同時還定義一個契約接口TestContract
。
定義TestService
如下:
2、創建服務提供者
接下來我們定義一個服務提供者TestServiceProvider
用於註冊該類到容器。創建服務提供者可以使用如下Artisan命令:
該命令會在app/Providers
目錄下生成一個TestServiceProvider.php
文件,我們編輯該文件內容如下:
3、註冊服務提供者
定義完服務提供者類後,接下來我們需要將該服務提供者註冊到應用中,很簡單,只需將該類追加到配置文件config/app.php
的providers
數組中即可:
4、測試服務提供者
這樣我們就可以在應用中使用該服務提供者了,為了測試該服務提供者我們首先使用Artisan命令創建一個資源控制器TestController
php artisan make:controlle TestController --resource // 該命令創建資源控制器
然後在路由配置文件routes.php
中定義路由:
最後去TestController
中編寫測試代碼:
註意: 在控制器中的構造函數中
返回TestService實例是因為在TestServiceProvider中進行了綁定,在callback函數中實例化了TestService這個類並且返回
然後我們去瀏覽器中訪問http://laravel.app:8000/test
,分別測試使用App::make
和依賴註入解析綁定類調用callMe
方法的輸出,結果一樣,都是
好了,大功告成,是不是很簡單?!
Laravel創建 Service Provider 測試實例