命名空间和自动加载 - 正确的方法

时间:2015-01-02 09:06:42

标签: php namespaces autoload

我想使用Facebook的PHP SDK并希望用它来实现__autoload,而且我遇到了问题。

起初我认为这样可行:

function __autoload($class) {  
    if(file_exists(APPPATH."libraries/facebook/".$class.EXT)) {
        require_once(APPPATH."libraries/facebook/".$class.EXT);     
    }
} 

顺便说一下,路径是正确的。

现在我想使用:

$fb = new FacebookSession();

它没有工作(未知类),然后我发现这是FacebookSession.php:

namespace Facebook;

我对PHP中的命名空间没有经验,但我试过这个:

$fb = new Facebook\FacebookSession();

我的自动加载器停止工作,因为现在__autoload中的$ class等于" Facebook \ FacebookSession"

如何处理?我不能简单地在" \"上做爆炸或类似的事情。因为,我相信,可以有更多这样的元素,对吗?或者它可能足以爆炸并采取最后一个元素,填充是要查找的最终类名?它确实有效,但这是正确的方法吗?

0 个答案:

没有答案