如何让Symfony2为我在vendor文件夹中创建的bundle自动加载我的routing.yml?

时间:2013-06-27 15:07:01

标签: php symfony vendors

我使用控制台创建了一个示例包。玩了一会儿。现在,我将其移至供应商文件夹。

在vendor文件夹中,包的文件夹结构是

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”。确保“@ VendorNameSampleBundle / Resources / config / routing。 yml“bundle已正确注册并加载到应用程序内核类中。

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

看到这个我检查了很多样本​​包但我找不到他们如何处理bundle控制器的路由,这些bundle控制器位于vendor文件夹中。

任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

好像我有一个命名空间问题。现在,纠正“resource:”中的名称空间,包括app/config/routing.yml中的资源。

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

答案 1 :(得分:0)

您应该按照documentation

中的说明制作路线加载器

同样如Pazi所指出,配置你的bundle's composer.json

最后添加你的root composer.json:

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