phalcon从目录加载类

时间:2015-05-20 08:58:07

标签: php model-view-controller model phalcon autoloader

我在phalcon framework 2.0中从目录加载“Model”类时遇到问题。

我现在无法使用命名空间,因为项目是从ZF1逐步迁移的,而Model类与它们有很多依赖关系。如果我为每个目录注册名称空间 - 加载器工作得很好,但我需要在没有名称空间的情况下这样做。

所以我这样做:

>>> xs[3:]
[4]

类名是Service_Name(),其中Service - 目录。文件名是Name.php,所以我需要为目录注册类前缀:

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

现在,我想获得我的服务类:

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

并获得致命错误:找不到类'Service_Name'。请帮助我,我做错了什么?

1 个答案:

答案 0 :(得分:1)

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

不同之处在于目录类的前缀

1.3版本中的

我使用'Service _'

2.0中的

工作正常'服务'

所以,解决方案是

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