"使用Facebook \ what"好像不行

时间:2015-03-26 18:30:11

标签: php facebook

我试图通过所有的教程和答案远程接近这一点,没有这样的运气。

我能够让我的代码在同一个文件中工作,但我正在尝试将其拆分为一个类(控制器调用收集器)。当代码移动到收集器(我在开头包括)时,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 个答案:

答案 0 :(得分:0)

问题在于我是如何尝试使用命名空间的。

1)我将use Facebook\yyyyyy;放在函数内部,也放在类中。这导致了两个地方的错误。这样的代码属于类声明之前文件的开头。

2)当尝试require_once文件时,它没有设置名称空间,因此Facebook自动加载器无法找到也导致错误的类。即使我可以验证类是使用print_r(get_declared_classes());声明的。

3)至关重要的是在我的代码开头添加error_reporting(E_ALL);ini_set('display_errors', 1);。虽然我可以找出导致问题的线路,但在此之前我不知道为什么。

感谢halfer!