在laravel中,我
composer require facebook/graph-sdk
就完成了, 但是之后如何在laravel项目中注册这个包呢?
我知道我必须去app.php并更改
'providers' => [...
和
'aliases' => [....
但是我怎么知道要追加什么? 安装其他软件包时如何获得?
我希望我能做
use Facebook;
在控制器中,但我不知道如何。
答案 0 :(得分:3)
Facebook Graph SDK只是一个通用的PHP SDK。您需要在Laravel应用程序中创建一个绑定其配置值的服务提供商。
首先,创建名为FACEBOOK_CLIENT_ID
和FACEBOOK_CLIENT_SECRET
的环境变量。
接下来,将这些环境变量绑定到配置值。打开 config / services.php 文件并添加以下内容:
'facebook' => [
'client_id' => env('FACEBOOK_CLIENT_ID'),
'client_secret' => env('FACEBOOK_CLIENT_SECRET'),
],
现在,使用Artisan创建服务提供商(php artisan make:provider FacebookServiceProvider
)并将其添加到 config / app.php 中的providers
数组中。
服务提供商应如下所示:
use Facebook\Facebook;
class FacebookServiceProvider extends ServiceProvider
{
protected $defer = true;
public function register()
{
$this->app->singleton(Facebook::class, function ($app) {
return new Facebook([
'app_id' => $app['config']['services.facebook.client_id'],
'app_secret' => $app['config']['services.facebook.client_secret'],
'default_graph_version' => 'v2.10',
]);
});
}
public function provides()
{
return [
Facebook::class,
];
}
}
这会将Facebook Graph SDK的已配置实例添加到应用程序的容器中,这意味着您可以在类的构造函数中键入它的提示并使用它:
class SomeController extends Controller
{
private $facebook;
public function __construct(Facebook $facebook)
{
$this->facebook = $facebook;
}
public function someMethod()
{
// Can use $this->facebook and it’ll already be
// configured with app ID and secret.
}
}
服务提供商也被推迟,这意味着仅在您请求时才加载SDK。