Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 17-10-2008 15:48:43

Damien
Membre
Lieu: Tassin la Demi Lune
Date d'inscription: 22-03-2007
Messages: 88

[URL Rewriting] J'y comprend vraiment rien

Bonjour à tous,

Comme beaucoup se sont posé la question, et visiblement y sont arrivés, et bien moi j'y arrive pas du tout. Je pensais pas qu'il y avait quelque chose que je n'arriverais pas à faire/comprendre avec ce framework mais là, j'ai atteint mon seuil de Peters (seuil d'incompétence).

J'ai lu un peut tout ce que le web peut dire sur le sujet y compris l'ensemble des posts traitants de ce sujet sur ce forum et je n'arrive toujours pas à faire ce que je veux.

Je souhaiterais faire de la réécriture d'url en vue de référencer naturellement et correctement les pages d'un site. Certaines pages ne doivent pas être réécrites et d'autres oui.

Ce que je voudrais :

Les urls de ce type http://monsite.com/[module]/[id]-blab-labla.html deviennent http://monsite.com/[module]/[controller]/[action]/id/[id]

Avec [module] (qui doivent être les mêmes dans l'url réécrite et la classique) qui correspond à un module (news par exemple), [controller] qui dépend de [module] et [action] qui dépend de [controller] (par exemple, si on a [module] = news alors on aura [controller] = show et [action] = show ).

Toutes les autres urls devront passées par la route standard à savoir http://monsite.com/[module]/[controller]/[action]/params....

Chaque module a une route particulière et chaque module est indépendants des autres.

Si vous avez des idées, elles sont les bienvenues.

Dernière modification par Damien (17-10-2008 15:49:26)

Hors ligne

 

#2 20-10-2008 17:31:23

Damien
Membre
Lieu: Tassin la Demi Lune
Date d'inscription: 22-03-2007
Messages: 88

Re: [URL Rewriting] J'y comprend vraiment rien

Vous n'avez aucune idée ?

Ou alors c'est trop simple pour vous ? smile

Hors ligne

 

#3 20-10-2008 18:23:50

barbarno
Nouveau membre
Date d'inscription: 17-10-2008
Messages: 7

Re: [URL Rewriting] J'y comprend vraiment rien

Salut,

Je pense en fait que ce n'est pas trés clair (sans vouloir être désagréable).

Pour ma part je n'utilise la notion de module que pour séparer des modules bien distincts d'une même application.
Exemple : un front office, un backoffice, un blog...

j'aurais donc tendance à utiliser le module default pour le site Internet public. Ensuite je crée un controlleur pour chaque elements (exemple : un controlleur pour les news, un controlleur pour l'agenda, un controlleur pour la page contact).

Dans ton cas j'aurais utilisé l'action "index" pour faire la liste des news et l'action show pour afficher une news en particulier.

Mais si l'objectif est de mettre en place une BELLE réecriture que GOOGLE appréciera alors je ferai comme suit :
DEFINITION DES ROUTE dans le fichier INDEX.php (le bootstrap je crois)
$router = $controller->getRouter(); // retourne un routeur de réécriture par défaut
$router->addRoute('actualites',new Zend_Controller_Router_Route('/actualites', array('controller' => 'news', 'action' => 'index')));
$router->addRoute('actualite',new Zend_Controller_Router_Route('/actualite/:titre', array('controller' => 'news', 'action' => 'show')));

Dans ton controlleur news action show tu recuperes le nom de l'actu avec $this->_request->getParam('titre') et cela te permet de la rechercher dans ta base pour l'afficher.

Perso j'utilise ce principe dans les quatre dernières appli que j'ai mis en ligne et ca fonctionne tres bien.
Charge à toi de capturer les erreurs si le titre ne correspond pas à un enregistrement de ta base afin de rédirigé vers une page qui dira "désolé document introuvable" avec un header 404 pour que google le comprenne aussi en cas de lien rompu.

J'espère ne pas avoir taper a côté de la plaque...
@+

PS : si ma vision des choses sur l'utilisation de la notion de module soulève le coeur de certains participants, je suis preneur de leurs remarques et de leurs arguments.

Hors ligne

 

#4 20-10-2008 18:42:02

Damien
Membre
Lieu: Tassin la Demi Lune
Date d'inscription: 22-03-2007
Messages: 88

Re: [URL Rewriting] J'y comprend vraiment rien

Merci de ta réponse.

Mon approche n'est pas la même smile Je souhaite avoir des modules compléments indépendants les uns des autres. Je ne peux donc rien ajouter dans la bootstrap qui ne soit commun à tous les modules.

Je vais tout de même essayer ce que tu as indiqué.

Hors ligne

 

#5 20-10-2008 19:12:50

barbarno
Nouveau membre
Date d'inscription: 17-10-2008
Messages: 7

Re: [URL Rewriting] J'y comprend vraiment rien

Ca ne change pas grand chose (le fait de vouloir des modules indépendants).

Tu peux auusi faire avec
$router = $controller->getRouter(); // retourne un routeur de réécriture par défaut
$router->addRoute('actualites',new Zend_Controller_Router_Route('/actualites', array('module'=>'news','controller' => 'news', 'action' => 'index')));
$router->addRoute('actualite',new Zend_Controller_Router_Route('/actualite/:titre', array('module'=>'news','controller' => 'news', 'action' => 'show')));

Il sera peut etre necessaire de nommé ton controlleur de la facon suivante : News_NewsController.

Pour ce qui du bootstrap, ton module pourra fonctionner sans que tu définisses de réécriture.
exemple : http://www.toto.com/news/news/index = http://www.toto.com/actualites (si réécrit).

Perso je copie colle mes controlleurs, modeles et vues depuis 4 projets et chaque fois je redéfini
s des routes différentes (fonction de la sémantique de contenu que je met au point avec le client).

Si tu arrives a redéfinir les url ailleurs que dans le bootstrap (j'en doute) je suis preneur.

@+

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages