Bonjour,

Je travaille sur un projet Symfony2 dans lequel un bundle du style CoreBundle, regroupe toutes les fonctionnalité nécessaires pour l'exécution des routes de la forme groupX.domaine/un-test (group1.domaine/un-test, group2.domaine/un-test,...). Dans le répertoire /app/config/routing.yml, les routes sont sous la forme :

ex_groupX_core:
    resource: "@EXCoreBundle/Resources/config/routing.yml"
    prefix: /
    host: "{group}.{domain}"
    defaults:
      domain: %ex_domain%
    requirements:
      domain: "%ex_domain%"
      group:  'groupX'

Il est donc question de créer des bundles GroupXBundle indépendants de façon à ce que les URLs groupX.domaine/un-test ne soient plus gérées par CoreBundle, mais de manière indépendante par le bundle GroupXBundle concerné. Pour ce faire, j'ai copié les fichiers en .twig de CoreBundle vers les repertoires /views de chacun des GroupXBundle. Seulement, voilà pour ce qui est de la gestion des routes, j'ai supprimé la partie ci-dessous du fichier app/config/routing.yml pour l'insérer dans chacun des fichiers de routage des bundles GroupeXBundle.

host: "{group}.{domain}"
    defaults:
      domain: %ex_domain%
    requirements:
      domain: "%ex_domain%"
      group:  'groupX'

De façon à avoir ceci dans les fichiers routing.yml des bundles GroupeXBundle :

ex_groupX_untest:
    path:    /un-test
    host: "{group}.{domain}"
    defaults: { _controller: EXGroupXBundle:Default:untest }
      domain: %ex_domain%
    requirements:
      domain: "%ex_domain%"
      group:  'GroupX'

Comme résultat, l'Exception suivante est retounée :

Fatal error: Uncaught exception 'Symfony\Component\Yaml\Exception\ParseException' with message 'Unable to parse at line 15 (near " domain: %ex_domain%").' in C:\nom_projet\projet_symfony2\app\cache\dev\classes.php on line 6088

Ce qui n'a probablement rien à avoir avec le répertoire /app/cache, car j'ai déjà eu à corriger une telle erreur dans une situation similaire en corrigeant tout juste les fautes de saisie. Dans la situation présente, en revanche, il n'y a aucune erreur de saisie.

Une suggestion, s'il vous plaît ? Y a-t-il une meilleure approche pour arriver à mes fins ?

Merci d'avance.

4 réponses


romainfan
Réponse acceptée

Bonjour.
Je pense qu'il y a une erreur dans cette partie-là :

ex_groupX_untest:
    path:    /un-test
    host: "{group}.{domain}"
    defaults: { _controller: EXGroupXBundle:Default:untest }
      domain: %ex_domain%
    requirements:
      domain: "%ex_domain%"
      group:  'GroupX'

Ta déclaration de domain ne devrait-il pas être dans le tableau defaults ?
Ce qui donnerait :

 defaults: { _controller: EXGroupXBundle:Default:untest,  domain: "%ex_domain%"}
php app/console cache:clear ?

Merci pour ta réponse. Idem après avoir vider le cache.

Merci romainfan, ton intervention résout mon problème !