在 symfony2 中创建 vendor bundle 并通过 composer 部署它

Creating vendor bundle in symfony2 and deploying it via composer

我正在尝试创建我的第一个供应商包。我在这个 question 中找到了很多信息,但我被卡住了。

在另一个项目中,我通过命令 composer require vted/peary 安装了它,文件在我的目录 vendors/vted/peary 下正确可见。

但是当它尝试像这样在 AppKernel.php 中添加它时:

$bundles = array(
    ...
    new Vted\PearyBundle\VtedPearyBundle(),
    ...
);

我收到以下错误:

ClassNotFoundException in AppKernel.php line 24:
Attempted to load class "VtedPearyBundle" from namespace "Vted\PearyBundle".
Did you forget a "use" statement for "Vted\PearyBundle\VtedPearyBundle"?

我认为这可能是某个地方的命名问题,但我找不到它。 VtedPearyBundle.php class 看起来很适合我。

您当前的包结构更适合 psr-4 自动加载器:

{
    "autoload" : {
        "psr-4" : {
            "Vted\PearyBundle\" : ""
        }
    }
}

或者,您可以使用 target-dir with psr-0。但是,首选 psr-4 自动加载器。