Blog technique sur mes expériences de développeur.
11 février 2012
Suite à mes deux précédents billets sur Windows Phone 7, je vous propose de changer un peu de sujet et de se tourner un peu vers Symfony 1.4.
Vous l’aurez compris, le sujet de ce billet est de vous permettre de mettre place le routage et l’URL rewriting dans votre application web développé à l’aide de Symfony 1.4.
Comme vous vous en êtes probablement rendu compte, les url que proposent Symfony 1.4 par défaut sont un peu particulières puisque de la forme http://www.monsite.fr/module/action/paramètre/valeur.
L’objectif de ce billet est de transformer ces URL en quelque chose de plus traditionnel à savoir une URL de la forme http://www.monsite.fr/module-action.html?paramètre=valeur.
Tout ou presque se passe au niveau du fichier routing.yml.
Ce fichier se trouve dans le dossier de configuration de vos applications : monsite\apps\monapplication\config\routing.yml.
Si vous ouvrez ce fichier pour la première fois, voici ce que vous devriez voir :
# You can find more information about this file on the symfony website:
# http://www.symfony-project.org/reference/1_4/en/10-Routing
# default rules
homepage:
url: /
param: { module: default, action: index }
# generic rules
# please, remove them by adding more specific rules
default_index:
url: /:module
param: { action: index }
default:
url: /:module/:action/*
Grâce au contenu du fichier routing.yml, on arrive assez facilement à repérer le schéma de construction d’une route :
nom_de_la_route:
url: /url_de_la_route
param: { module: nom_du_module, action: nom_de_laction}
Nous allons donc construire notre première route ! Nous allons partir ici du principe que nous avons créé un module portant le nom main.
L’objectif est que dans notre application, les URL soient les suivants :
Nous avons donc 5 routes à construire :
main:
url: /main.html
param: { module: main, action: index}
main-show:
url: /main-show.html
param: { module: main, action: show}
main-edit:
url: /main-edit.html
param: { module: main, action: edit}
main-delete:
url: /main-delete.html
param: { module: main, action: delete}
main-update:
url: /main-update.html
param: { module: main, action: update}
Attention lorsque vous écrivez vos routes ! Le langage utilisé est le YAML, et ce langage ne supporte pas les tabulations. Il faut utiliser ici la barre espace de votre clavier !
Maintenant que vos routes sont en place, il faut modifier les URL de votre application de la façon suivante :
<a href="<?php echo url_for('/main.html'); ?>">Index</a>;
$this->redirect('/main.html');
Afin que nos routes soient complètement fonctionnelles, une dernière chose reste à faire : activer l’URL rewriting sur le serveur Apache.
Le module à activer se nomme rewrite_module.
C’est bon, le routage et l’URL rewriting devrait normalement fonctionner !