我使用控制台创建了一个示例包。玩了一会儿。现在,我将其移至供应商文件夹。
在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文件夹中。
任何人都可以帮我解决这个问题吗?
答案 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"
}