我是 Laravel 的新手,我正在尝试了解它是如何工作的。我已经按照定义设置了这个库。
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'));
}
}
Non-static method Thujohn\Twitter\Twitter::getUserTimeline() should not be called statically, assuming $this from incompatible context
那么,我无法理解为什么我不能使用第二种形式?
最佳答案
因为在第二个示例中您直接使用该类,而该类恰好与别名访问器具有相同的名称。
你所看到的静态调用是一个Façade,它实际上使用静态方法实例化类(我不太擅长解释......)
如果您按照说明操作,您应该已在 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'));
}
}
关于php - Laravel Twitter 库 - 静态函数 getUserTimeline() 在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27303991/