在joomla 2.5中注册命名空间类

时间:2014-07-20 10:54:22

标签: php joomla2.5 autoload

我试图在我的joomla项目中实现一个为PSR-0兼容的自动加载编写的库。但是joomla 2.5不支持PSR-0自动加载,所以我认为我必须编写自己的实现。

由于我想在我的整个joomla安装中使用我的类,所以我决定编写一个注册类onAfterInitialise()的插件,但这就是它出错的地方:它覆盖了joomla的自动加载方法。

我试图实施的图书馆位于libraries/Zoho/CRM/ZohoClient.php,有几个子文件夹。所有内容都按照PSR-0进行命名,因此从\Zoho\CRM开始。

如何以可以在joomla中全局使用它们的方式注册类?这是我的实施:

public function onAfterInitialise()
{

    spl_autoload_register(function ($className) {
        $className = ltrim($className, '\\');
        $fileName = '';
        $namespace = '';
        if ($lastNsPos = strripos($className, '\\')) {
            $namespace = substr($className, 0, $lastNsPos);
            $className = substr($className, $lastNsPos + 1);
            $fileName = str_replace('\\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;
        }
        $fileName .= str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';

        require $fileName;
    });
}

这显然不会起作用,因为它会覆盖joomla自动加载功能。我正在运行php5.3(3个月内5.4)

0 个答案:

没有答案