4
在我App\Providers\RouteServiceProvider
我沒有創建方法register
:Laravel 5.0 - 在哪裏使用服務提供商的綁定?
public function register()
{
$this->app->bindShared('JustTesting', function($app)
{
die('got here!');
// return new MyClass;
});
}
我應該在哪裏使用?我沒有創造App\Http\Controllers\HomeController
的方法:
/**
* ReflectionException in RouteDependencyResolverTrait.php line 53:
* Class JustTesting does not exist
*
* @Get("/test")
*/
public function test(\JustTesting $test) {
echo 'Hello';
}
但沒有作品,我也不能使用$這 - > APP->讓( 'JustTesting');
它的工作原理,如果我做下面的代碼,但我想注入控制器。
/**
* "got here!"
*
* @Get("/test")
*/
public function test() {
\App::make('JustTesting');
}
我該如何結合我想要的?如果不允許,爲什麼我應該使用bindShared
方法?
我不想用'MyClass',因爲它可以在未來改變到另一個類(如另一個供應商,但實現相同的接口)。那麼我可以在我的控制器中使用'... test(JustTestingInterface $ test)'嗎?然後它應該被解析爲'MyClass'(或者我想用'bindShared'方法綁定的另一個類) – 2014-11-10 14:50:29
@GiovanneAfonso我修復了我原來的代碼,這是不正確的....'JustTestingInterface'應該是一個接口,由'MyClass'。然後,你會將'JustTestingInterface'綁定到'MyClass',這樣Laravel在請求'JustTestingInterface'的實現時就會知道使用'MyClass'。 – Inda5th 2014-11-10 18:01:43