Symfony 路由配置我找不到关于曾经工作的文档,但现在没有了

Symfony routing configuration I can't find documentation about used to work but now it doesn't

我通常看到 resource: 包含一个文件路径,但这里我有一个带有 yaml 的多行字符串:

shop_admin_taxon:
    resource: |
        alias: sylius.taxon
        section: shop
        templates: AdminBundle:Taxon/Crud
        except: ['show', 'index']
        redirect: update
        grid: shop_admin_taxon
    type: sylius.resource
    prefix: /

当它在另一个项目的 Symfony 3.2.7 上运行时,我没有收到任何关于此代码的错误消息。但是现在 Symfony 3.4 在尝试读取此配置时给我以下错误:

The file "alias: sylius.taxon section: shop templates: AdminBundle:Taxon" does not exist.

这确实是预期的(因为据我所知,您将资源定位器传递给 resource: 而不是实际的资源配置),但为什么 它起作用了?

Symfony 是复杂的野兽,允许对其内部结构进行大量修改。路由组件也不例外,您可以看到动态修改甚至动态创建路由的用法。

这看起来特别像 Sylius extension to routing. If you are curious how precisely it works have a look at the relevant Symfony documentation page. The functionality is being provided by the SyliusResourceBundle with a custom loader

考虑到所有这些,您的 Sylius 安装似乎已损坏,因为自定义路由加载器无法正常工作。这可能是作曲家更新引入的一些版本不匹配(例如,由于与较新版本的组件 B 不兼容而删除组件 A),或者未启用捆绑包,或类似的东西。确保所有 Sylius 包都已安装并启用