我创建自己的ServiceProvider,以便在启动类时发送参数形式:
class InstagramServiceProvider extends ServiceProvider
{
protected $defer = true;
public function boot()
{
$this->publishes([
__DIR__.'/../config/config.php' => config_path('instagram.php'),
]);
}
public function register()
{
$this->app->bind('instagram.client', function ($app) {
return new InstagramClient([
'apiKey' => $app['config']->get('instagram.clientId'),
'apiSecret' => $app['config']->get('instagram.clientSecret'),
'apiCallback' => $app['config']->get('instagram.redirectUri'),
'scope' => $app['config']->get('instagram.scope'),
]);
});
}
public function provides()
{
return array('instagram.client');
}
}
我无法从配置中获取数据?我做错了什么?
答案 0 :(得分:0)
Laravel有一个专门为此作业构建的功能,名为config()
。您可以按如下方式使用它:
public function register()
{
$this->app->bind('instagram.client', function ($app) {
return new InstagramClient([
'apiKey' => config('instagram.clientId'),
'apiSecret' => config('instagram.clientSecret'),
'apiCallback' => config('instagram.redirectUri'),
'scope' => config('instagram.scope'),
]);
});
}
或者您也可以使用括号表示法:
$app['config']['instagram']['clientId']
有关详细信息,请参阅文档:https://laravel.com/docs/5.4/configuration#accessing-configuration-values