Zend framework2 psr 4-zf2加载自定义类
我有一个ZF2应用程序,在根级别我有我的供应商文件夹。经典骨架应用 在供应商中,包含了我使用composer更新和安装的所有库 在下,供应商需要添加自定义类并自动加载 使用composer并编写一个类似这样的autoladerZend framework2 psr 4-zf2加载自定义类,zend-framework2,composer-php,Zend Framework2,Composer Php,我有一个ZF2应用程序,在根级别我有我的供应商文件夹。经典骨架应用 在供应商中,包含了我使用composer更新和安装的所有库 在下,供应商需要添加自定义类并自动加载 使用composer并编写一个类似这样的autolader "autoload": { "psr-4": { "ciromar\\": "/vendor/ciromar/src" } 现在文件夹结构如下所示: vendor --ciromar ---- src ------ Log --------
"autoload": {
"psr-4": {
"ciromar\\": "/vendor/ciromar/src"
}
现在文件夹结构如下所示:
vendor
--ciromar
---- src
------ Log
-------- Writer
---------- FileRotator.php (class)
该类的命名空间是FileRotator.php
namespace ciromar\Log\Writer;
我的应用程序的控制器
use ciromar\Log\Writer\FileRotator;
IndexController class extends AbstractActionController
{
public function indexAction ()
{
$fr = new FileRotator("");
}
}
错误
Fatal error: Class 'ciromar\Log\Writer\FileRotator' not found in /var/www/html/myapp/module/Application/src/Application/Controller/IndexController.php on line 21
您应该以这种方式设置路径
"autoload": {
"psr-4": {
"ciromar\\": "./vendor/ciromar/src"
}
但我认为你们不应该把你们的定制模块交给供应商。
您应该像模块一样开发它,然后添加自己的模块composer.json,然后将模块添加到packagist,然后在您的项目composer.json中要求您的模块,然后composer自动将其下载到供应商
如果您只想为app module实现PSR-4加载,请将其放在app module目录中,并将自动加载规则添加到composer.json
比如说
好的,我解决了。我需要这样设置路径。/vendor/ciromar/src