我正在自己创建一个小型Google Analytics服务,以便学习如何做这些事情。
所以我有一个AnalyticsServiceProvider
,其中包含:
public function register()
{
$this->app->bind('analytics', function () {
$client = new Google_Client();
$client->setApplicationName('Hodor Application');
$client->setAssertionCredentials(new Google_Auth_AssertionCredentials($account, $scope, $key));
return new AnalyticsService(new Google_Service_Analytics($client));
});
}
我的AnalyticsService
有一个doSomething()
方法,可以从API获取数据
我将analytics
IoC绑定绑定到Analytics
外观。
所以在设置时,我可以从我的控制器中调用Analytics::doSomething();
。哪个工作正常。
但是我想从构造函数中将AnalyticsService
注入到我的控制器中..就像这样:
public function __construct(AnalyticsService $service)
{
$this->service = $service;
}
但是,这不起作用,因为AnalyticsServiceProvider
的代码不会被执行
在我的构造函数中注入AnalyticsService
后,有什么方法可以执行此操作吗?
答案 0 :(得分:0)
使IoC容器密钥成为实际的类名:
public function register()
{
$this->app->bind('AnalyticsService', function () {
// register as before...
});
}