";使用Facebook“whatever”;似乎不起作用


"use Facebookwhatever" seems to not work

我已经尝试过远程阅读所有教程和答案,但没有这样的运气。

我可以让我的代码在同一个文件中工作,但我正试图将它拆分成一个类(控制器调用收集器)。当将代码移动到收集器(我在开始时将其包括在内)时,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