我已经使用控制台创建了一个示例捆绑包。玩了一会儿。现在,我把它移到供应商文件夹中。
在供应商文件夹中,捆绑包的文件夹结构为
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"
}