自动加载器如何在zend框架2中工作

时间:2015-02-22 06:17:06

标签: php zend-framework2 package composer-php autoloader

我只是想为packagist创建一个包,这是一个zend framework 2用户身份验证模块,https://packagist.org/packages/tahmina8765/zf2auth

当我将这个zf2auth文件夹保存在我的modules文件夹中时,它可以工作。但是当我用作曲家下载它时,它在vendor / tahmina8765 / zf2auth中下载。 在此文件夹中,它不起作用。我的意思是,我在application.config.php中添加了这个模块 -

'modules' => array(
    ...
    'Zf2auth'
),

但在这里它不起作用。如果我保持领先,即。 vendor / zf2auth它再次起作用。

如何在vendor / tahmina8765 / zf2auth文件夹中使其可用?

1 个答案:

答案 0 :(得分:1)

我认为模块中的composer.json文件存在问题。它说:

"autoload": {
    "psr-0": {
        "Zf2auth": "./"
    }
}

并查看它应该是的目录结构:

"autoload": {
    "psr-0": {
        "Zf2auth\\": "src"
    }
}

它适用于您的./modules/目录,因为您在模块类中拥有getAutoloaderConfig - 这是由ZF2完成的。但是,当您通过composer下载模块时,自动加载(可能)由作曲家完成,并使用作曲家清单中的自动加载(无效)定义。您可能还希望运行作曲家dump命令,以刷新自动加载类。