使用Laravel 4.1找不到App :: environment

时间:2014-05-07 03:18:44

标签: laravel laravel-4 environment

我的一个软件包(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'),

));

知道我为什么会收到错误吗?谢谢。

1 个答案:

答案 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());
    }

}