Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用yaml和php路由的Symfony_Php_Symfony - Fatal编程技术网

使用yaml和php路由的Symfony

使用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

我想在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();

$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
目录,将其从自动布线中排除,一切都进行得很顺利。你想把你的评论作为信用卡的答案吗?