我已经尝试过远程阅读所有教程和答案,但没有这样的运气。
我可以让我的代码在同一个文件中工作,但我正试图将它拆分成一个类(控制器调用收集器)。当将代码移动到收集器(我在开始时将其包括在内)时,PHP停止在"--->"行:
public function FacebookClientObject() {
$facebookId = "xxxxx";
$facebookAppSecret = "yyyyy";
--->FacebookSession::setDefaultApplication($facebookId, $facebookAppSecret);
echo "default set";
}
假设这是因为函数无法访问静态方法,我已经尝试过
use Facebook'FacebookSession;
在函数的开头。添加收集器时,收集器无法包含在控制器的开头。我已经将自动加载器移到了这两个文件周围(包括FacebookClientObject()的开头),并确认它是通过echo语句加载的,它似乎不会影响这个问题。
我甚至使用包含了该文件
require_once(FULLPATH . 'libs/facebook-php-sdk-v4/src/Facebook/FacebookSession.php');
而不是use Facebook'FacebookSession;
我觉得这应该是一件非常简单的事情,我只是忽略了它。
争论的焦点是我如何尝试使用名称空间。
1) 我把use Facebook'yyyyyy;
放在函数中,也只是放在类中。这在两个地方都造成了错误。这样的代码属于类声明之前的文件的开头。
2) 当尝试请求文件时,它没有设置名称空间,因此Facebook自动加载器无法找到类,这也导致了错误。尽管我可以验证这些类是用print_r(get_declared_classes());
声明的。
3) 至关重要的是将error_reporting(E_ALL);
和ini_set('display_errors', 1);
添加到代码的开头。虽然我能弄清楚是哪些线路造成了问题,但在此之前我不知道为什么。
谢谢halfer