Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
安装可分发symfony2捆绑包时出现的问题_Symfony_Bundle - Fatal编程技术网

安装可分发symfony2捆绑包时出现的问题

安装可分发symfony2捆绑包时出现的问题,symfony,bundle,Symfony,Bundle,我无法在任何Symfony2项目中成功安装我的第一个可分发捆绑包,因为我在捆绑包的配置上犯了错误 我的包: 当您按照安装说明并使用composer-like安装包时,它通常是有效的。但当您运行网站时,会出现以下异常: 我不知道为什么会发生这种情况,您能否帮助我了解为可分发捆绑包设置配置的正确方法 多谢各位 KDRTicketBundle配置: composer.json { “名称”:“kdrmklab/票证包”, “类型”:“symfony bundle”, “自动加载”:{ “psr-

我无法在任何Symfony2项目中成功安装我的第一个可分发捆绑包,因为我在捆绑包的配置上犯了错误

我的包:

当您按照安装说明并使用composer-like安装包时,它通常是有效的。但当您运行网站时,会出现以下异常:

我不知道为什么会发生这种情况,您能否帮助我了解为可分发捆绑包设置配置的正确方法

多谢各位


KDRTicketBundle配置:

composer.json

{
“名称”:“kdrmklab/票证包”,
“类型”:“symfony bundle”,
“自动加载”:{
“psr-0”:{“kdrmklab\\TicketBundle\\”:“”
}
}
//文件:KDRTicketBundle.php
名称空间kdrmklab\TicketBundle;
使用Symfony\Component\HttpKernel\Bundle\Bundle;
类KDRTicketBundle扩展了Bundle
{
}
注:

  • 我在我的所有项目类(控制器、服务、实体)中使用名称空间
    名称空间kdrmklab\TicketBundle\*…
  • 当在src/目录中分配此捆绑包时,它在开发项目中运行良好,就像开发时的每个symfony2捆绑包一样

PSR-0自动加载要求完整的命名空间由目录表示。在这种情况下,这意味着bundle类应该位于
kdrmklab/TicketBundle/kdrmklab/TicketBundle/KdrmkLabsTicketBundle.php

当然,拥有这些额外的目录是非常愚蠢的。这就是为什么有PSR-4自动加载。此标准从路径中删除已配置的命名空间前缀


因此,解决方案是将
“psr-0”:{…}
更改为
“psr-4”:{…}

psr-0自动加载要求完整的命名空间由目录表示。在这种情况下,这意味着bundle类应该位于
kdrmklab/TicketBundle/kdrmklab/TicketBundle/KdrmkLabsTicketBundle.php

当然,拥有这些额外的目录是非常愚蠢的。这就是为什么有PSR-4自动加载。此标准从路径中删除已配置的命名空间前缀


因此,解决方案是将
“psr-0”:{…}
更改为
“psr-4”:{…}

我解决了我的问题。DependencyInjection/KDRTicketExtension.php的名称与DependencyInjection/Configuration.php中定义的参数名称不同。psr-0就像你说的那样错了。谢谢,我解决了我的问题。DependencyInjection/KDRTicketExtension.php的名称与DependencyInjection/Configuration.php中定义的参数名称不同。psr-0就像你说的那样错了。非常感谢。