自动加载器如何在 zend 框架 2 中工作
How autoloader works in zend framework 2
我只是想为 packagist 创建一个包,一个 zend 框架 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/
目录中工作,因为你的模块 class 中有 getAutoloaderConfig
-- 这是由 ZF2 完成的。但是,当您通过作曲家下载模块时,自动加载(可能)由作曲家完成,并且使用作曲家清单中的自动加载(无效)定义。您可能还想 运行 composers dump
命令后记,以刷新自动加载 classes.
我只是想为 packagist 创建一个包,一个 zend 框架 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/
目录中工作,因为你的模块 class 中有 getAutoloaderConfig
-- 这是由 ZF2 完成的。但是,当您通过作曲家下载模块时,自动加载(可能)由作曲家完成,并且使用作曲家清单中的自动加载(无效)定义。您可能还想 运行 composers dump
命令后记,以刷新自动加载 classes.