我正试图在我的项目中使用Phalcon的通用类加载器功能,但我无法使其正常工作。
以下是我如何在我的应用程序中实现的(使用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文档只是说你需要注册一个类并在函数中调用它。我错过了什么?
Ps.:库文件夹没有在任何地方注册(不知道是否需要),并且它与控制器、视图等(/app/
)位于同一路径中。
您可能应该检查您的目录结构。
给定:
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
此外,我还建议使用名称空间和/或将文件名与类名相匹配。
也有同样的问题。我注释掉了类中的名称空间声明,它起了作用。2.0.3版本。