Phalcon 2与Phalcon 3实例化模型

时间:2016-10-31 11:31:26

标签: php phalcon autoloader

我已将Phalcon项目从2迁移到3,并获得了一些意想不到的行为。在我的装载机中,我这样做:

<?php
use Phalcon\Loader;

$loader = new Loader();

$loader->registerDirs(
    array(
        $config->application->libraryDir,
        $config->application->controllersDir,
        $config->application->modelsDir
    )
);

$loader->register();

现在,当我尝试在我的控制器动作中实例化我的一个模型时,代码停止了:

$present = new \Present();

&#34; recv()的结果失败(104:对等连接重置),同时从上游读取响应标头&#34; /var/log/nginx/error.log中的错误。

但是,当我直接在我的loader.php文件中实例化该类时,模型会自动加载,我可以在任何地方实例化它。控制器操作的解决方法是:

if (class_exists('Present')) { // THIS triggers the autoloader
    $present = new \Present();
    $present->save();
}

所以问题现在已经解决了。我的问题是:为什么没有

new \Present()

按照我的预期在控制器动作中触发自动加载器?为什么它在Phalcon 2下工作?当我直接在loader.php或public / index.php中执行它时,为什么它可以工作?

0 个答案:

没有答案