我的可分发 symfony2 包的安装问题

Problems with instalation of my distributable symfony2 bundle

我无法在任何 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
{
}

备注:

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

当然,有这些额外的目录是很愚蠢的。这就是 PSR-4 自动加载的原因。该标准从路径中删除配置的命名空间前缀。

所以解决办法就是把"psr-0": { ... }改成"psr-4": { ... }