如何使Symfony2自动加载我在vendor文件夹中创建的捆绑包的routing.yml


How do I make Symfony2 autoload my routing.yml for my bundles that I create in vendors folder?

我已经使用控制台创建了一个示例捆绑包。玩了一会儿。现在,我把它移到供应商文件夹中。

在供应商文件夹中,捆绑包的文件夹结构为

VendorName'VendorName'Bundles'SampleBundle

我已将名称空间添加到composer/autoload_namespaces.php中,并在AppKernel.php中成功注册了捆绑包。在SampleBundle/Resources/config文件夹中,存在具有先前定义的路由信息的routing.yml

当捆绑包位于src文件夹内时,路由工作正常。我在app/config/routing.yml中有以下定义的

biberltd_currency:
    resource: "@VendorNameSampleBundle/Resources/config/routing.yml"
    prefix:   /

根据以上定义,我得到以下错误:

无法从"D:/localdev/www/symfony/app/config''routing.yml"导入资源"@VendorNameSampleBundle/Resources/config/routing.yml

当我从app/config/routing.yml中删除路由定义时,错误消失了,但路由不起作用。

看到这一点,我检查了很多示例捆绑包,但我找不到它们是如何为供应商文件夹中的捆绑包处理捆绑控制器的路由的。

有人能帮我吗?

我似乎遇到了命名空间问题。现在,在更正了"resource:"中的名称空间(包括app/config/routing.yml中的资源)后,工作正常。

biberltd_currency:
    resource: "@VendorNameSampleBundle/Resources/config/routing.yml"
    prefix:   /

您应该按照文档中的描述制作一个路由加载器

同样正如Pazi所指出的,配置您的捆绑包的composer.json

最后添加您的根composer.json:

"repositories": [
{
    "type":"git",
    "url":"/home/dev/bundle.git"
}
],
"require":{
    "my/bundle":"dev-master"
}