使用Symfony 4.4捆绑包文件结构
foo-bundle
├─ Resources
│ └─ config
│ └─ routing.yaml
└─ FooBundle.php
在应用程序的routes.yml
中,您将像这样加载bundle的路由:
foo_bundle:
resource: '@FooBundle/Resources/config/routing.yaml'
使用Symfony 5捆绑包结构,您可以:
foo-bundle
├─ config
│ └─ routing.yaml
└─ src
└─ FooBundle.php
但似乎路径是相对于FooBundle.php
的,在应用程序的routes.yml
中,您不能使用..
,即这是无效的:
resource: '@FooBundle/../config/routing.yaml'
那么我如何加载bundle的路由呢?
唯一的方法似乎是将`` FooBundle.php `提升一个级别,但是这样它就需要在自动加载器中进行特殊处理,而文档(绿色框)中的自动加载示例不包含这种特殊处理。
1条答案
按热度按时间vxqlmq5t1#
这个文档实际上有点混乱。对于5.4,您需要调整Bundle::getPath以使用新的目录结构。对于6.x,新的AbstractBundle类为您完成了这一任务。
也许值得指出的是,5.4文档仍然显示了旧的bundle结构。阅读文档时设置正确的文档版本通常是值得的,只是为了避免这类问题。但最新的文档再次表明,这一变化发生在Symfony 5中。