我正在创建一个使用facebookphp-sdk的应用程序,它需要一些配置:
require_once("facebook.php");
$config = array(
'appId' => 'YOUR_APP_ID',
'secret' => 'YOUR_APP_SECRET',
'fileUpload' => false, // optional
'allowSignedRequest' => false, // optional, but should be set to false for non-canvas apps
);
$facebook = new Facebook($config);
我该把它放在哪里,以便在我的模型和控制器中使用$facebook
?
在这种情况下,您最好使用Laravel-IoC容器。
创建服务提供商
<?php
require_once("facebook.php");
use Illuminate'Support'ServiceProvider;
class FacebookServiceProvider extends ServiceProvider {
public function register()
{
$app = $this->app;
$app->bind('facebook', function()
{
$config = array(
'appId' => 'YOUR_APP_ID',
'secret' => 'YOUR_APP_SECRET',
'fileUpload' => false, // optional
'allowSignedRequest' => false, // optional, but should be set to false for non-canvas apps
);
return new Facebook($config);
});
}
}
将其添加到您的app/config/app.php
'FacebookServiceProvider',
现在,在应用程序的任何地方,您都可以通过以下操作访问它:
App::make('facebook')->whateverMethod();
如果只需要实例化一次,可以使用singleton:
$app->singleton('facebook', function()
{
....
}
您可以将其放在app/controller/BaseController.php中不过,我不建议在您的模型中使用它,它们应该严格地只以程序方式表示数据。