Zend Framework #6 : Utilisation de Zend_Navigation

Publié le 25 mars 2010 par Alexandre_julien

Il est très utile dans une application Web d’avoir un système de navigation capable de cartographier les pages d’un site et d’en déduire des plan de site, fils d’arianes, menus, sitemap.xml, …

Zend_Navigation a été conçu dans cette optique, il propose un système de gestion de pages et des helpers pour générer des composants graphiques.

Nous allons voir dans ce tutoriel une façon simple de mettre en place Zend_Navigation :

Tout d’abord il nous faut définir la navigation et le conteneur de donnée. Dans notre cas, on stockera l’arborescence dans un fichier XML appellé ‘navigation.xml’ dans le répertoire « config ».

protected function _initNavigation() {
$this->bootstrap('layout');
$layout = $this->getResource('layout');
$view = $layout->getView();
$config = new Zend_Config_Xml(APPLICATION_PATH . '/configs/navigation.xml', 'nav');
$container = new Zend_Navigation($config);
$view->navigation($container);
}
<div>

Ensuite, on remplit le fichier « navigation.xml » pour créer notre navigation, on y indiquera la page d’accueil et une page de listing.
On se basera sur le système de routes pour donner le lien.

<configdata>
 <nav>
 <home>
 <label>Accueil</label>
 <route>index</route>
 <pages>
 <listing>
 <label>Liste CRUD</label>
 <route>listing</route>
 </listing>
</pages>
</home>
</nav>
</configdata>

Et voilà la mise en place de Zend_Navigation est fini. Il ne vous reste plus qu’à utiliser des helpers pour appeler vos composants :
Pour le breadcrumb par exemple :

$this->navigation()->breadcrumbs()->setSeparator(" -> ");

Il existe d’autres façon d’intégrer Zend_Navigation sur une application notamment en intervenant directement sur le code. Cette méthode reste très simple mais très fonctionnelle. On y pourra voir des améliorations comme mettre en place un cache pour augmenter les performances.