2016-05-16 46 views
0

我有一個API端點控制器,它看起來像:Laravel - 自動注射所需接口當手動初始化類

class myApiController extends BaseApiController{ 

    public function __construct(UsersInterface $users, JobsInterface $jobs){ 

     // Do bootstrap tasks 

    } 

} 

以上內容僅目前正在使用爲我的API提供端點。它們在routes.php文件中以下列方式引用。

Route::get('api/get', 
    ['as' => 'api.get', 'uses' => '[email protected]']); 
Route::post('api/post', 
    ['as' => 'api.post', 'uses' => '[email protected]']); 

Laravel自動初始化myApiController類以上並解決了__construct()功能的所有依賴注入。

myApiController中有幾個函數沒有綁定到端點,我希望在另一個腳本中使用它。當我在這個腳本中初始化類時:

$MyApiController = new myApiController() 

我收到一個錯誤,指出構造函數期望接口引用被注入。

有沒有辦法在類初始化時自動注入這些接口?

回答

0

自動分辨率可以幫助你。

class FooBar { 

    public function __construct(Baz $baz) 
    { 
     $this->baz = $baz; 
    } 

} 

$fooBar = App::make('FooBar'); 

請確保命名空間是正確的。(對於laravel 4,你不需要命名空間)

read more