Bonjour ,
Bon j'utilise Zend_Controller_Router_Route_Regex actuellement dans mon application et malgré quelque difficulté au début j'ai trouvé une solution mais incomplète en plus je veux passer mon code pour des gens qui n'ont pas encore utiliser cette classe.Je souhaite créer des pages personnalisées sur mon site pour les villes,voilà mon code:
index.php :
1 2 3 4 5 6 7 8 9 10 11 12
| $router = Zend_Controller_Front::getInstance()->getRouter();
$route = new Zend_Controller_Router_Route_Regex('city/([-\w]+)\.html?', array(
'controller' => 'users',
'action' => 'index'
), array(
1 => 'cityName',
), 'city/%s.html');
$router->addRoute('city', $route); |
et dans le script vue :
<a href="<?php echo $this->url(array('cityName' => 'paris'), 'city', true); ?>">Title</a>
Alors cela marche bien mais je ne peux pas utiliser cette fonction que pour une seule page city/paris.php,alors j'ai 60 villes.Quand je met par exemple deux fois le code pour deux pages il m'affiche une seule pages pour les deux,c'est à dire que pour city/paris.php et city/marseille.php il me redirige toujours vers la deuxième,donc je trouve deux problèmes :
1) Une confusion entre les deux pages,
2) Je dois réécrire le code pour chaque page alors c'est trop lourd comme code.
J'ai essayé à remédier le premier problème avec Zend_Controller_Router_Route_Static cela marche avec deux pages,j'ai fais comme suit :
index.php :
1 2 3 4 5
| $router = Zend_Controller_Front::getInstance()->getRouter();
$route = new Zend_Controller_Router_Route_Static('paris.php',array('action'=> 'index','controller'=> 'index'));
$router->addRoute('paris', $route);
$route = new Zend_Controller_Router_Route_Static('marseille.php',array('action'=> 'index','controller'=> 'users'));
$router->addRoute('marseille', $route); |
dans le script de ma vue :
1 2
| <a href="<?php echo $this->baseUrl();?>/paris.php">Paris</a>
<a href="<?php echo $this->baseUrl();?>/marseille.php">Marseille</a> |
Alors il me redirige vers la pages souhaitées sans confusion entre http://localhost/exemple/public/paris.php et http://localhost/exemple/public/marseille.php.
Mais encore j'aurai le même problème du code, je dois pour chaque page mettre son code dans mon index.php,donc si j'aurai 60 pages à personnaliser également 120 lignes ou plus dans mon bootstrap qui est lourd comme même et je souhaite utiliser Zend_Controller_Router_Route_Regex.
Vous pouvez me m'aider à résoudre ce problème,et surement c'est un sujet très important parce que on ne trouve rien sur le net sauf la solution que j'ai proposé qui est malheureusement incomplète ou lourde.
Merci.
Partager