Symfony2

conseils Symfony2

Ce site ne sera plus alimenté de contenu après août 2014. Tous les nouveaux articles seront redigés pour www.waitingforcode.com

Encore très récemment je me limitais à écrire uniquement tests d'accès aux données. Ils vérifiaient si l'utilisateur X peut voir l'élément ne lui appa Plus →

20-11-2011 20:11

Un premier grand projet Symfony2 se rapproche de sa mise en ligne. Il est temps de tirer quelques conclusions et de dresser une liste des diff Plus →

09-10-2011 19:19

Le même projet duquel je me suis inspiré pour écrire l'article Plus →

21-08-2011 14:22

Pendant le travail sur mon dernier projet j'ai été confronté au développement d'un composant d'authentification. Vu l'absence de la documentation, la Plus →

09-08-2011 14:43
Moi

Développeur d'applications Internet et journaliste passionné par l'adjectif français. Un aigle polonais orienté vers la progression, volant très haut et écoutant du zouk après les matches du foot français.

Vous appréciez mon travail ?

Pour contribuer au développement de ce site, ou pour remercier pour des articles rédigés, vous pouvez faire un don.

Un conseil Symfony2

Comment utiliser les routes d'un autre environnement ?

En utilisant les routes d'un autre environnement sous Symfony2 on risque de voir le nom du dispatcher. Supossons qu'on est placé dans notre backoffice, déclenché avec le fichier administration.php . On se trouve donc dans un url /administration.php/admin/get/order/1 . L'environnement courant est donc "administration". Si l'on veut appeler une route de l'environnement "frontend", "/show/order/1", on risque de voir l'url suivant : /administration.php/show/order/1 . Cela est provoqué par le fait que Symfony2 reprend l'environnement actuel. Pour éviter ce genre de situations, il faut récupérer l'objet qui gère la génération des urls pour l'environnement donné. Ensuite, temporairement, il faut lui indiquer l'url de base à utiliser pour les chemins. Voici le code qui devrait résoudre ce problème :

$generator = $this->container->get('router')->getGenerator();
// var_dump($generator->getOption('baseurl'));
// Symfony\Component\Routing\RequestContext
$requestContext = $generator->getContext();
// sets base URL used in the generated URL
$requestContext->setBaseUrl('frontend.php');
// var_dump($requestContext);
$generator->setContext($requestContext);
//var_dump($generator);
echo $this->generateUrl('showOrder', array('id' => 1));
// will show /frontend.php/show/order/1 url