Le Zend Framework, depuis sa version 1.8, a apporté une nouvelle fonctionnalité, le ZendTool. Cela permet de nous aider dans la mise en route d’un projet Zend Framework.
Pour cette série d’article, je vais prendre comme exemple la création d’un blog. Il ne s’agit pas de concurrencer WordPress ou dotclear, ce blog aura des fonctionnalités simples, comme l’affichage des articles, l’affichage par catégorie d’article et par auteur.
Configuration
Je pars du principe que votre Zend Server est correctement installé. Le répertoire d’installtion est /usr/local/zend.
Création d’un lien symbolique sur le script zf.sh
sudo ln -s /usr/local/zend/share/ZendFramework/bin/zf.sh /usr/bin/zf
Création d’un projet
Dans un premier temps, il faut se placer dans le répertoire destination. Dans mon cas, je me suis positionné dans mon répertoire Sites, à savoir /Users/jean/Sites
zf create project blog
Nous retrouvons l’architecture sandard du Zend Framework, avec 3 répertoires principaux : application, library et public.
public
Ce répertoire est le répertoire de départ de notre site. Il contient uniquement le fichier index.php et .htaccess. C’est ici que nous ajouterons nos fichiers css, javascript et images.
library
Ce répertoire contiendra vos classes et éventuellement le répertoire du Zend Framework s’il n’est pas configuré dans votre include_path.
application
C’est le coeur de notre application. Il est composé d’un fichier Bootstrap.php et de 4 répertoires : vos controlleurs (controllers), vos modèles (models), vos vues (views) et le répertoire de configuration (configs).
Configuration du serveur Apache
Pour faire fonctionner le site, il faut créer un virtual host dans notre serveur Apache, pour pointer sur notre répertoire public ajouter cela dans le fichier : /usr/local/zend/apache2/conf/extra/httpd-vhosts.conf
<virtualhost *:80> DocumentRoot /Users/jean/Sites/blog/public ServerName blog </virtualhost>
ainsi que cette ligne dans votre fichier /etc/hosts
127.0.0.1 blog
redémarrage du serveur apache :
sudo /usr/local/zend/bin/apachectl restart
ouvrir la page http://blog/ dans votre navigateur, et vous devez voir cette page : Félicitation, votre projet est correctement configuré.
Création de nos contrôleurs
Pour cette exemple, je vais mette en place 2 contrôleurs : articles, pour l’affichage des articles, avec un affichage par auteur et catégorie, ainsi que auteurs, pour afficher la liste des auteurs et la page détail de l’auteur.
Contrôleur articles
Nous allons créer les actions suivantes, sauf l’action index, qui est créée directement avec le contrôleur :
- index : affichage des derniers articles, juste le teaser
- categorie: pour l’affichage des articles pour une catégorie
- auteur: affichage des articles pour un auteur
- detail: affichage de l’article complet
Voici les commandes pour créér ce contrôleur, ainsi que les actions correspondantes :
zf create controller articles zf create action categorie articles zf create action auteur articles zf create action detail articles
Contrôleur auteurs
Il ne contient que les actions index et detail.
zf create controller auteurs zf create action detail auteurs
Comme on peut le voir dans l’image ci dessous, les controlleurs et vues sont automatiquement générés.
Test
Nous allons maintenant vérifier que tout cela fonctionne, en testant les urls suivantes :
- http://blog/articles
- http://blog/articles/detail
- http://blog/articles/categorie
- http://blog/articles/auteur
- http://blog/auteurs
- http://blog/auteurs/detail
La suite
Pour l’instant, ces pages ne contiennent pas grand chose, mais nous allons rapidement y remédier.
Dans le prochain billet, nous allons mettre en place la base de données, l’utilisation de DbTable et mettre en place l’affichage de ces données.
A voir ou revoir :
- Article 2 : La base de données
- Article 3 : Zend_Layout et template