我无法在任何Symfony2项目中成功安装我的第一个可分发软件包,因为我在软件包的配置上犯了错误。
我的捆绑:https://github.com/KdrMkLabs/TicketBundle
按照安装说明安装捆绑包并且通常使用composer时,它的工作原理。但是当你运行网站时,它会发生以下异常:
我不知道为什么会这样,你能帮我理解为可分发包设置配置的正确方法吗?
谢谢。
KDRTicketBundle配置:
composer.json
{
"name": "kdrmklabs/ticket-bundle",
"type": "symfony-bundle",
"autoload": {
"psr-0": { "KDRMKLabs\\TicketBundle\\": "" }
}
}
// file: KDRTicketBundle.php
namespace KDRMKLabs\TicketBundle;
use Symfony\Component\HttpKernel\Bundle\Bundle;
class KDRTicketBundle extends Bundle
{
}
注意:
namespace KDRMKLabs\TicketBundle\*...
。答案 0 :(得分:2)
PSR-0自动加载需要完整命名空间由目录表示。在这种情况下,这意味着捆绑类应该位于kdrmklabs/ticket-bundle/KdrmkLabs/TicketBundle/KdrmkLabsTicketBundle.php
。
当然,拥有这些额外的目录是非常愚蠢的。这就是PSR-4自动加载的原因。此标准从路径中剥离已配置的名称空间前缀。
因此解决方案是将"psr-0": { ... }
更改为"psr-4": { ... }