Zend framework2 psr 4-zf2加载自定义类

Zend 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 --------

我有一个ZF2应用程序,在根级别我有我的供应商文件夹。经典骨架应用 在供应商中,包含了我使用composer更新和安装的所有库

在下,供应商需要添加自定义类并自动加载

使用composer并编写一个类似这样的autolader

"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