使用yaml和php路由的Symfony
我想在Symfony(3.3.8)应用程序中混合使用yaml和php路由。我对yaml路由非常熟悉,所以我使用了使用yaml和php路由的Symfony,php,symfony,Php,Symfony,我想在Symfony(3.3.8)应用程序中混合使用yaml和php路由。我对yaml路由非常熟悉,所以我使用了bin/console原则:generate:crud命令来查看PHP路由的样子。它生成了一个路由文件,看起来像 <?php use Symfony\Component\Routing\RouteCollection; use Symfony\Component\Routing\Route; $collection = new RouteCollection(); $col
bin/console原则:generate:crud
命令来查看PHP路由的样子。它生成了一个路由文件,看起来像
<?php
use Symfony\Component\Routing\RouteCollection;
use Symfony\Component\Routing\Route;
$collection = new RouteCollection();
$collection->add('user_index', new Route(
'/',
array('_controller' => 'AppBundle:User:index'),
array(),
array(),
'',
array(),
array('GET')
));
// other CRUD routes...
return $collection;
我是否需要重新设计此文件,使其像类一样,与Symfony文档中建议的格式相反?或者我是否需要告诉自动加载程序忽略此文件,这样它就不会试图找到一个不应该存在的类?Symfony 3.3中引入的一个重大变化是自动连接服务的概念。在我不那么谦虚的观点中,很多不一致的魔法几乎没有什么好处 作为自动布线过程的一部分,决定在默认情况下为每个class a服务。假设任何php文件中都有一个类。因此,尝试在Resources/config/routing/restful_resource.php中查找一个类 为了防止这种行为,您需要显式地告诉服务生成器跳过目录
// app/config/services.yml
AppBundle\:
resource: '../../src/AppBundle/*'
exclude: '../../src/AppBundle/{Entity,Repository,Tests,Resources}'
引入所有这些新的“助手”功能的好处是,我获得了相当多的代表解释它们。Symfony 3.3中引入的一个重大变化是自动连接服务的概念。在我不那么谦虚的观点中,很多不一致的魔法几乎没有什么好处 作为自动布线过程的一部分,决定在默认情况下为每个class a服务。假设任何php文件中都有一个类。因此,尝试在Resources/config/routing/restful_resource.php中查找一个类 为了防止这种行为,您需要显式地告诉服务生成器跳过目录
// app/config/services.yml
AppBundle\:
resource: '../../src/AppBundle/*'
exclude: '../../src/AppBundle/{Entity,Repository,Tests,Resources}'
引入所有这些新的“helper”函数的好处是,我得到了相当多的解释。从直接完全删除缓存开始。这很可能是你之前的一些尝试造成的。否则,只需为整个项目添加restful_资源。这是一个不寻常的名字,来自某个地方。如果您使用的是S3.3,那么autowire可能会把您搞砸。请尝试向排除的目录添加资源。抱歉,我忘记在问题中包括
restful\u resource.php
是基于实体生成的文件名。我会清理缓存的,好的。几乎可以肯定,这是自动连线把你搞砸了。开箱即用的S3.3+试图让一切都成为服务。因此,编辑app/config/services.yml并将资源添加到排除目录列表中。是的,看起来就是这样。我添加了Resources
目录,将其从自动布线中排除,一切都进行得很顺利。您想发布您的评论作为信用卡的答案吗?首先直接完全删除缓存。这很可能是你之前的一些尝试造成的。否则,只需为整个项目添加restful_资源。这是一个不寻常的名字,来自某个地方。如果您使用的是S3.3,那么autowire可能会把您搞砸。请尝试向排除的目录添加资源。抱歉,我忘记在问题中包括restful\u resource.php
是基于实体生成的文件名。我会清理缓存的,好的。几乎可以肯定,这是自动连线把你搞砸了。开箱即用的S3.3+试图让一切都成为服务。因此,编辑app/config/services.yml并将资源添加到排除目录列表中。是的,看起来就是这样。我添加了Resources
目录,将其从自动布线中排除,一切都进行得很顺利。你想把你的评论作为信用卡的答案吗?