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