phalcon 从目录加载 类

phalcon load classes from directory

我在从 phalcon 框架 2.0 中的目录加载 "Model" classes 时遇到问题。

我现在不能使用命名空间,因为项目是从ZF1一步步迁移过来的,Model classes和自己有很多依赖关系。如果我为每个目录注册名称空间 - 加载程序工作得很好,但我需要在没有名称空间的情况下这样做。

所以我这样做了:

$loader = new \Phalcon\Loader();
$loader->registerDirs(
[
    /** Phalcon controllers */
    $configPhalcon->application->controllersDir,
    /** Models */
    $configPhalcon->application->servicesDir,
    ...
    ...
],
true
)->register();

Class 名称是 Service_Name(),其中服务 - 目录。文件名为 Name.php,因此我需要为目录注册 class 前缀:

$loader->registerPrefixes(
[
    'Service_' => $configPhalcon->application->servicesDir,
    ...
    ...
],
true
)->register();

现在,我想得到我的服务class:

$serv  = new Service_Name();

并收到致命错误:Class 'Service_Name' 未找到。请帮助我,我做错了什么?

谢谢你 Artamiel 我找到问题了!我有 phalcon 1.3 并且一切正常,然后我将 phalcon 更新到 2.0 版本,并且没有测试自动加载。

区别在于目录的前缀 类

1.3版本我用'Service_'

在 2.0 中工作正常 'Service'

所以,解决方案是

    $loader->registerPrefixes(
    [
        'Service' => $configPhalcon->application->servicesDir,
        ...
        ...
    ],
    true
    )->register();