我只是想为packagist创建一个包,一个zend framework 2用户身份验证模块,https://packagist.org/packages/tahmina8765/zf2auth
当我把这个zf2auth文件夹放在模块文件夹中时,它就可以工作了。但当我用composer下载它时,它是在vendor/tahmina8765/zf2auth中下载的。在此文件夹中,它不起作用。我的意思是,我已经在application.config.php-中添加了这个模块
'modules' => array(
...
'Zf2auth'
),
但在这里它不起作用。如果我继续前进,即vendor/zf2auth,它会再次工作。
如何使其在vendor/tahmina8765/zf2auth文件夹中可用?
我认为模块中的composer.json
文件有问题。上面写着:
"autoload": {
"psr-0": {
"Zf2auth": "./"
}
}
看看目录结构应该是:
"autoload": {
"psr-0": {
"Zf2auth\": "src"
}
}
它在您的./modules/
目录中工作,因为您的模块类中有getAutoloaderConfig
——这是由ZF2完成的。然而,当您通过composer下载模块时,自动加载(可能)由composer完成,并使用composer清单中的自动加载(无效)定义。您可能还想运行composers dump
命令afterwords,以刷新自动加载类。