Laravel-手动初始化类时自动注入所需的接口


Laravel - Automatically Injecting Needed Interfaces When Manually Initializing a Class

我有一个API端点控制器,看起来像:

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' => 'myApiController@methodone']);
Route::post('api/post',
    ['as' => 'api.post', 'uses' => 'myApiController@methodtwo']);

Laravel自动初始化上面的myApiController类,并解决__construct()函数中的所有依赖项注入。

myApiController中有一些函数没有绑定到端点,我想在另一个脚本中使用这些函数。当我用初始化这个脚本中的类时

$MyApiController = new myApiController()

我收到一个错误,说明构造函数期望注入接口引用。

有没有在类初始化时自动注入这些接口?

自动分辨率可以帮助您。

class FooBar {
    public function __construct(Baz $baz)
    {
        $this->baz = $baz;
    }
}
$fooBar = App::make('FooBar');

请确保命名空间正确。(对于laravel 4,您不需要名称空间)

阅读更多