16 mai
Par Clément dans PHP
Mots-clefs :Orienté Objet, PHP, Zend
Aujourd’hui nous allons voir comment réécrire une url avec le Zend Framework mais uniquement pour un page en particulier.
En général, sans rien toucher au Zend_Router de Zend, on obtient des adresses web de cette forme là :
http://www.monsite.com/monControlleur/monAction/monParam1/maValeur1/monParam2/maValeur2
Ce genre d’adresse n’est pas forcément optimiser pour le référencement car rappelons pour les initiés des techniques de référencement que Google apprécie particulièrement les adresses internet limitées à 4 sous dossiers . Ici, c’est trop !
Donc pour cela, nous avons une classe de Zend qui nous permet de spécifier une route (adresse) spécifique pour un controlleur et une action en particulier.
Dans le précédent billet, je vous expliquai le principe du controlleur frontal lors de l’implémentation de Zend pour notre site internet.
Pour le moment, dans notre exemple, les adresses ressemblent à cela :
http://www.monsite.com/produits/detail/id/monIdenNumero
Il suffit de faire comme cela :
/*
Ici on prépare la route, on instancie un route avec expression régulière
qui peut comprendre n'importe quel caractère.
Ensuite on passe en paramètre un tableau d'option :
1 correspond au premier paramètre pour eviter de faire id/1213
controller et action : le controlleur a réécrire et l'action à réécrire
*/
$route = new Zend_Controller_Router_Route_Regex('produit/(.+)',array(
1 => 'id',
'controller' =>'produits',
'action' =>'detail')
);
// On instancie le controlleur frontal
$frontController = Zend_Controller_Front::getInstance();
// On récupère la router basique
$router = $frontController ->getRouter();
// On ajouter une route au router en spécifiant un paramètre et la route préparée
$router ->addRoute('produit',$route);
// On spécifie le dossier des controlleurs
$frontController->setControllerDirectory('./application/controllers');
$frontController->dispatch(); // On envoie l'application
On aura donc maintenant une route qui ressemblera à cela :
http://www.monsite.com/produit/monIdenNumero
Parfait non? Enfin parfait pour ce que l’on cherchait à faire mais cela n’est pas entièrement optimisé pour le référencement car on affiche dans l’adresse un numéro et pas une chaine de caractère descriptive; je vous en parlerais prochainement dans un prochain billet!
J’espère que cela vous aura aidé dans votre quête de la perfection !
« Commencer avec Zend Framework | Changer de CSS avec Javascript et Prototype »
Un trackback
6 commentaires
caluze
25 juillet 2008 à 18:46
1Bonjour,
je suis très intéressé par l’optimisation de l’url par une chaine de caractère descriptif, étant moi même dans la situation http://www.monsite.com/produit/monIdenNumero, qui est loin d’être optimale pour le référencement.
Allez vous proposer un tutorial sur le sujet prochainement ?
caluze
25 juillet 2008 à 18:49
2J’allais oublier, je cherche une méthode capable de s’appliquer à un ensemble de page … j’avoue que je (enfin les développeurs qui sont dessus) galère un peu pour trouver une méthode viable.
mikaweb
27 décembre 2008 à 20:00
3Bonjour,
J’ai du mal à trouver ma réponse sur le net.
Ne voulant pas utiliser Zend mais uniquement certaines parties, je voulais savoir si il était possible de prendre le router et le faire fonctionner sur son propre framework ?
Je me suis fait un truc il y a de cela quelques mois mais je me dis que c’est peut être le module qu’il faudrait que je rajoute afin d’être paré à tout niveau sécurité et niveau qualité de la fonction.
Merci.
Mika’
dev21
7 janvier 2009 à 15:13
4Le prochain billet risque d’être fort intéressant
gtraxx
4 août 2009 à 13:48
5Deuxième post plus ancien
,
Tout comme mikaweb, je suis intéresser par une astuce de « route» pour son propre framework.
Je suis certain que l’on peu créer un système qui réécris les url tel que le zend framework.
Je pense surtout aux controllers, j’ai jadis trouvé un tuto mais il faut trop adapté : http://www.phpro.org/tutorials/Model-View-Controller-MVC.html
tomtom
7 juin 2010 à 18:14
6Et on le fou dans quelle page ton code ??? parceque là c’est pas complet comme tutoriel ?
Laisser un commentaire
Devenir Fan de Dator.fr
Nuage de tags
Sponsors
Blogoliste
Blogs Amis
Derniers Posts
Derniers Commentaires
Les meilleurs sujets
Propulsé par WordPress