2014-12-04 49 views
2

我是新来的Laravel,我试图了解它是如何工作的。我已经按照定义设置了这个库。Laravel Twitter图书馆 - 哪里是静态函数getUserTimeline()

https://github.com/thujohn/twitter-l4

例子完美的作品时,我定义只有Twitter的使用;显示如下

use Stream; 
    use Twitter; 

    class GoController extends \BaseController{ 
     function go($id){ 
      return Twitter::getUserTimeline(array('screen_name' => 'thujohn', 'count' => 20, 'format' => 'json')); 
     } 
} 

但它使用Thujohn \ Twitter \ Twitter时会引发此错误;

use Stream; 
    use Thujohn\Twitter\Twitter; 

    class GoController extends \BaseController{ 
     function go($id){ 
      return Twitter::getUserTimeline(array('screen_name' => 'thujohn', 'count' => 20, 'format' => 'json')); 
     } 
} 

非静态方法Thujohn \微博\ Twitter的:: getUserTimeline()应该 不能静态调用,假设$这种在不兼容的情况下

所以,我无法理解为什么我不能使用第二种形式?

回答

2

在第二个例子中,您直接使用类,这恰好与别名访问器具有相同的名称。

你看静态调用什么是外墙,这实际上用静态方法实例化类(我不是在解释的事情真的好...)

如果你跟着你应该说明已在config/app.php文件中创建了别名。

'Twitter' => 'Thujohn\Twitter\TwitterFacade', 

,并且该别名是非常Twitter类(即外观),你需要打电话,你看到所谓的文件中。

因此,删除use语句use Thujohn\Twitter\Twitter;并且您的代码将使用“Twitter”别名(就像它在第一个示例中那样),即将调用Facade存取器。

use Stream; 

class GoController extends \BaseController 
{ 

    public function go($id) 
    { 
     return \Twitter::getUserTimeline(array('screen_name' => 'thujohn', 'count' => 20, 'format' => 'json')); 
    } 
} 
+0

你能告诉我一个例子如何加载一个非静态类静态? – fobus 2014-12-05 20:54:43