我的一个软件包(Oauth2 Madewithlove软件包)中有一个文件,我有一个我正在使用的功能。在这个功能中,我想在我的本地环境中使用某个Facebook应用程序,并在我的生产环境中使用某个应用程序。因此该函数如下所示:
public function search($query = '', $type = '') {
if(App::environment('local')) {
$url = 'https://graph.facebook.com/search?key=value&access_token=********|***************&q='.str_replace(' ', '+', $query).'&type='.$type;
}
else {
$url = 'https://graph.facebook.com/search?key=value&access_token=***********|*****************&q='.str_replace(' ', '+', $query).'&type='.$type;
}
return json_decode(file_get_contents($url), true);
}
哪些已加星标的部分是应用和秘密。但是,运行此时,我收到错误:
Class 'OAuth2\Provider\App' not found
使用文件路径:
/vendor/madewithlove/laravel-oauth2/src/OAuth2/Provider/Facebook.php
这指向App:环境线。我已经在bootstrap / start.php文件中将其添加到我的配置中:
$env = $app->detectEnvironment(array(
'local' => array('******-*******-MacBook-Pro.local'),
));
知道我为什么会收到错误吗?谢谢。
答案 0 :(得分:3)
使用:
\App::environment();
Laravel不是命名空间,因此每个类都将位于根名称空间中。由于您的类Facebook
位于OAuth2\Provider
命名空间中,因此它会查找OAuth2\Provider\App
,除非您指定它位于具有前导\
的根命名空间中。
您还可以使用use
:
<?php namespace OAuth2\Provider
// Imports use the root namespace
use App;
class Facaebook
{
public function __construct()
{
var_dump(App::environment());
}
}