如何正确使用Universal Class Loader?

时间:2013-12-12 12:58:27

标签: php phalcon

我正在尝试将Phalcon中的 Universal Class Loader 功能用于我的项目,但是我无法使其正常运行。

以下是我在我的应用中的实现方式(使用registerClasses)。

的index.php:

//...
$loader->registerClasses(
    array(
        "Commons" => "library/classes/CommonsClass.php"
    )
);

$loader->register();

sampleController.php:

public function doAction()
{
    $cc = new Commons();
}

当我执行控制器时,它会抛出这个异常:

Fatal error: Class 'Commons' not found in C:\the\path\to\phalcon_app\app\controllers\SomeController.php on line 63

Phalcon Documentation只是说你需要注册一个类并在你的函数中调用它。有什么我错过了吗?

Ps。:库文件夹未在任何地方注册(不知道是否需要),并且它与控制器,视图等(/app/)在同一路径中。

2 个答案:

答案 0 :(得分:0)

您应该查看目录结构。

下式给出:

mah_app/app/config/loader.php
mah_app/library/classes/Commons.php

我希望这可行:

// loader.php
$loader->registerClasses(
    array(
        "Commons" => __DIR__ . "/../../library/classes/Commons.php"
    )
)->register();
// works with $loader->registerDirs() for sure

另外,我还建议使用名称空间和/或将文件名与类名匹配。

答案 1 :(得分:0)

有同样的问题。我在类中注释掉了名称空间声明并且它有效。版本2.0.3。