Installation de Zend Framework

Voilà maintenant plusieurs mois que j’utilise le framework PHP Zend pour mes projets. Après une longue hésitation, principalement sur le facteur temps – combien d’heures, de jours, de semaines sont nécessaires à l’apprentissage d’un tel outil – et sur le choix du framework, j’ai décidé de commencer un nouveau projet avec Zend et ainsi voir ce qu’il en était. Programmant déjà en OOP le plus souvent avec le paradigme MVC, j’avais les bases nécessaires. Environ 2 mois ce sont donc écoulés maintenant et je peux dire que j’ai adopté l’approche ZF.

Ce billet existe à des milliers d’exemplaires sur le web, il parle de la mise en place du framework sur une machine de type *ix ou Windows, mais je pense que dans l’optique de futurs billets progressifs sur le sujet, mieux vaut commencer par le début ^.^

Téléchargement

La première chose à faire bien entendu est de télécharger le dit framework, depuis cette adresse : http://framework.zend.com/download/latest
Ce tutoriel ne parle pas de la version serveur complet Zend Server Community, mais bien de l’installation manuel du framework sur une machine (Linux, Mac ou Windows) disposant déjà d’un serveur Apache + PHP fonctionnel. A savoir que ZF s’utilise sans soucis avec tout type de serveur web + PHP, Nginx, Lighttpd, même IIS. Sur la page de téléchargement, il est possible de choisir entre la version Full ou Minimal, le second choix ne contient que les composants Zend, c’est donc suffisant pour tout projet ZF, la version Full inclut la documentation, des exemples, des librairies externes, et d’autres outils, cela peut donc être un choix judicieux pour débuter et s’inspirer d’exemples concrets.

Installation

Une fois le fichier tar.gz ou zip sur la machine, il faut le décompresser. Vous êtes libre de placer les fichiers ZF où vous le désirez, en ce qui me concerne, je décompresse l’archive hors de la racine du serveur web, sous Linux (Fedora/CentOS) je le place sous /var/www/ZendFramework-1.11.11-minimal, sous Windows/XAMPP sous C:\xampp\ZendFramework-1.11.11-minimal.
Une fois ceci fait, il faut que PHP ait accès aux classes du framework, pour ce faire il faut ajouter le chemin de la bibliothèque – le dossier library/ – à l’include_path de PHP. Sous Linux, on édite le fichier de configuration de PHP situé sous /etc/php.ini :

; UNIX: "/path1:/path2"
include_path = ".:/php/includes:/var/www/ZendFramework-1.11.11-minimal/library"

Sous Windows XAMPP, il se situe sous C:\xampp\php\php.ini

; Windows: "\path1;\path2"
include_path = ".;C:\xampp\ZendFramework-1.11.11-minimal\library"

On redémarre le serveur web depuis le panneau de controle de XAMPP sous Windows, ou sous Fedora/CentOS en invoquant systemd :

# systemctl reload httpd.service

L’outil en ligne de commande

Dans la dossier bin/ de l’installation de Zend Framework se trouvent 3 fichiers scripts zf.sh, zf.bat et zf.php, le premier pour Linux et le deuxième pour Windows. Ces scripts sont des aides à la création et à l’évolution d’un projet ZF, ce n’est pas du tout obligatoire de les utiliser, mais ils permettent de s’affranchir de la création et de l’écriture de beaucoup de lignes de code rébarbatives. Ceci sera abordé plus loin.

Pour utiliser ces outils, plusieurs choix sont possibles, soit on reste comme ça et lorsque l’on veut utiliser les commandes zf on écrit le chemin complet vers le script en question, ou alors on ajoute le chemin vers les scripts dans le PATH du système. On peut également déplacer les fichiers dans un dossier du systèmes inclut dans le PATH ou créer des liens symboliques vers le dossier bin/. Je n’expliquerai pas cela en détail ici, la documentation de ZF en parle assez en détail ici : http://framework.zend.com/manual/1.11/en/zend.tool.framework.clitool.html

Une fois arrivé là, on peut vérifier le bon fonctionnement du framework en ouvrant un terminal et en essayant :

C:\Users\werk>zf.bat show version
Zend Framework Version: 1.11.11

Sous Linux :

$ zf.sh show version
Zend Framework Version: 1.11.11

Tout fonctionne.

Fonctionnement de la commande zf

Ce billet a pour but d’aider à l’installation du Zend Framework, je ne vais pas parler aujourd’hui de la mise en route d’un projet qui fera l’objet d’un prochain billet. Mais je veux juste montrer l’utilité de l’outil zf en expliquant brièvement l’architecture d’un projet MVC avec le framework Zend :

Dans l’idéal – cet idéal étant déjà un choix de programmation parmis d’autres – voici l’arborescence d’un projet Zend :

monprojet/
|-- application
|   |-- Bootstrap.php
|   |-- configs
|   |   `-- application.ini
|   |-- controllers
|   |   |-- ErrorController.php
|   |   `-- IndexController.php
|   |-- models
|   `-- views
|       |-- helpers
|       `-- scripts
|           |-- error
|           |   `-- error.phtml
|           `-- index
|               `-- index.phtml
|-- docs
|   `-- README.txt
|-- library
|-- public
|   `-- index.php
`-- tests
    |-- application
    |   `-- controllers
    |       `-- IndexControllerTest.php
    |-- bootstrap.php
    |-- library
    `-- phpunit.xml

En gros, ceci est l’architecture de base pour commencer, cela représente un petit peu de temps si on veut créer ces répertoires et fichiers à la main. C’est là que l’outil zf entre en jeu. Voyons un peu. Placez-vous à la racine de ce que sera votre projet, on admet que le projet s’appellera monprojet, la racine du site web est /var/www/html :

# cd /var/www/html
# zf.sh create project monprojet
Creating project at /var/www/html/monprojet
Note: This command created a web project, for more information setting up your VHOST, please see docs/README
Testing Note: PHPUnit was not found in your include_path, therefore no testing actions will be created.

Le script nous dit qu’un répertoire monprojet a été crée, allons voir. En effet, on s’aperçoit de la présence du nouveau répertoire avec toute l’arborescence citée plus haut, sympa non? Sans rentrer dans les détails, imaginons que dans le futur projet, je veux ajouter un nouveau controlleur moncontrolleur, la commande zf create controller va me le faire tout seul. On commence cette fois par entrer dans le répertoire du projet, seul la création d’un nouveau projet se fait depuis la racine (logique) :

# cd monprojet
# zf create controller moncontrolleur
Note: PHPUnit is required in order to generate controller test stubs.
Note: The canonical controller name that is used with other providers is "Moncontrolleur"; not "moncontrolleur" as supplied
Creating a controller at /var/www/html/monprojet/application/controllers/MoncontrolleurController.php
Creating an index action method in controller Moncontrolleur
Creating a view script for the index action method at /var/www/html/monprojet/application/views/scripts/moncontrolleur/index.phtml
Updating project profile '/var/www/html/monprojet/.zfproject.xml'

Elle va m’ajouter le fichier du controlleur en question avec le squelette de sa classe et les fichiers de vues associés. Vous pouvez essayer. On vérifie avec un tree :

monprojet/
|-- application
|   |-- Bootstrap.php
|   |-- configs
|   |   `-- application.ini
|   |-- controllers
|   |   |-- ErrorController.php
|   |   |-- IndexController.php
|   |   `-- MoncontrolleurController.php
|   |-- models
|   `-- views
|       |-- helpers
|       `-- scripts
|           |-- error
|           |   `-- error.phtml
|           |-- index
|           |   `-- index.phtml
|           `-- moncontrolleur
|               `-- index.phtml
|-- docs
|   `-- README.txt
|-- library
|-- public
|   `-- index.php
`-- tests
    |-- application
    |   `-- controllers
    |       `-- IndexControllerTest.php
    |-- bootstrap.php
    |-- library
    `-- phpunit.xml

On voit le nouveau fichier de la classe controlleur MoncontrolleurController.php :

class MoncontrolleurController extends Zend_Controller_Action
{

    public function init()
    {
        /* Initialize action controller here */
    }

    public function indexAction()
    {
        // action body
    }


}

Ainsi que la vue d’index associée moncontrolleur/index.phtml. Il est également indiqué que le profil du projet .zfproject.xml a été mis à jour.

Pour terminer

Voici un billet regroupant les étapes de l’installation du Zend Framework pour commencer un projet MVC (ou non) avec cette bibliothèque complète et maintenant éprouvée. La prochaine étape sera la création d’un projet ZF.

4 thoughts on “Installation de Zend Framework”

  1. Dans la version minimale du zend framework 1.11.11, on n’a pas le ZendX. Ou peut-on le trouver et le palcer dans le library pour pouvoir executer des instructions jquery. Merci, je ne suis qu’un debutant

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *