Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Error de referencia circular en el enrutamiento de Symfony

26 de marzo de 2015

Hola:

Estoy empezando un nuevo proyecto personal en la nueva version de Symfony (por cierto, que chulo el nuevo instalador) y me está dando un fallo muy raro:

Circular reference detected in "C:\wamp\www\fate.dev\app/config/routing_dev.yml" 
("C:\wamp\www\fate.dev\app/config/routing_dev.yml" > 
"C:\wamp\www\fate.dev\app/config\routing.yml" > 
"C:\wamp\www\fate.dev\src\AppBundle/Controller/" > 
"C:\wamp\www\fate.dev\app/config/routing_dev.yml").

La cuestion es que solo tengo un controlador con una unica accion:

<?php
 
namespace AppBundle\Controller;
 
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
 
class BackendController extends Controller
{
    /**
     * @Route("/", name="listBackend)
     * @Template()
     */
    public function listBackendAction()
    {
        $em = $this->getDoctrine()->getManager();
 
        $list = $em->getRepository('AppBundle:Languages')->findAll();
 
        return ['list' => $list];
    }
}

Aquí está mi routing_dev.yml:

_wdt:
    resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml"
    prefix:   /_wdt

_profiler:
    resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
    prefix:   /_profiler

_configurator:
    resource: "@SensioDistributionBundle/Resources/config/routing/webconfigurator.xml"
    prefix:   /_configurator

_errors:
    resource: "@TwigBundle/Resources/config/routing/errors.xml"
    prefix:   /_error

_main:
    resource: routing.yml

Y mi routing.yml:

app:
    resource: "@AppBundle/Controller/"
    type:     annotation

Como podéis ver está nuevito del todo. Solo le instalé los bundles que uso siempre. Aquí os dejo un listado

"raulfraile/ladybug-bundle": "dev-master",
"stof/doctrine-extensions-bundle": "dev-master",
"friendsofsymfony/user-bundle": "*",
"elao/web-profiler-extra-bundle" : "~2.3@dev",
"doctrine/doctrine-fixtures-bundle": "dev-master"

Estoy un poco mosca y no se por qué falla.

Saludos a todos.


Respuestas

#1

El otro día vi este mensaje de error por primera vez. En mi caso, el problema tenía que ver en realidad con los namespaces. Tenía un controlador de la parte de administración que estaba guardado en src/AppBundle/Controller/Admin/, pero su namespace era AppBundle\Controller en vez de AppBundle\Controller\Admin.

@javiereguiluz

26 marzo 2015, 17:14
#2

Era eso.

No se si quererte u odiarte.

Saludos

@TsubasaAkai

26 marzo 2015, 17:38
#3

La suerte ha sido que justo el otro día me saltó este error por primera vez. Estaba preparando la aplicación demo de Symfony y tenía el mismo caso que tú: un controlador en la parte de backend. Lo moví de sitio sin actualizar el namespace y me explotó la aplicación con ese error rarísimo de referencia circular.

@javiereguiluz

26 marzo 2015, 18:07
#4

También es casualidad. Le he estado echando un vistazo a la aplicación. Mola. Simple y efectiva. ¿Váis a hacer un tutorial para complementarla?

@TsubasaAkai

26 marzo 2015, 19:18
#5

Por el momento no vamos a hacer un tutorial. Pero lo que sí que vamos a hacer es añadirle un montón de cosas y sobre todo, miles de comentarios en el código explicando por qué hacemos las cosas de esa manera y también muchos consejos útiles.

Por otra parte, como el error del que estamos hablando en esta discusión me parece muy mejorable, he creado este issue en el repositorio de Symfony. A ver si les parece bien a los que deciden y se puede mejorar el mensaje de error.

@javiereguiluz

26 marzo 2015, 21:29
#6

Pues estaré atento a este hilo. La verdad, creo que la explicación es muy confusa y no soluciona nada.

Muchas gracias por tu ayuda.

@TsubasaAkai

27 marzo 2015, 1:16