Zend Framework

Introduction à Zend Framework 2.0

Cela fait un moment que je vous ai parlé de Zend Framework 2.0 en vous disant qu’il allait arriver.

Ces derniers jours je me suis demandé où ils en étaient et il faut dire que cette version avance bien. Pour le moment le framework Zend en version 2.0 n’en est encore qu’au stade de développement (version 2.0dev4 exactement) ce qui la rend impropre à l’utilisation dans un environnement de production mais pas aux différents tests.

Nous allons donc voir comment créer un projet basique avec cette version. Tout d’abord, il faut savoir que ZF2.0 utilise les namespaces introduits dans PHP 5.3 ce qui veut dire que si vous avez un serveur en 5.2.X, vous pouvez passer votre chemin ou bien mettre votre serveur à jour vers la version requise qui se trouve être la version 5.3.1

Voici la liste des nouveautés de cette version :

  • Utilisation des namespaces de PHP 5.3
  • Suppression des require_once et include_once
  • Remplacement des singletons par des classes statiques
  • Optimisation des performances
  • Ajout d’interfaces derrière chaque classe abstraite
  • Réécriture de la partie MVC

Les présentations étant faites, nous pouvons passer à la partie pratique. Vous trouverez le framework Zend à la dervière versionen date (2.0dev4) sur le GIT officiel du projet à cette adresse. Ensuite, sachez que pour ces tests, j’utilise un environnement Linux Ubuntu 11.04.

Bien, maintenant que tout est prêt nous allons regarder ce que comporte l’archive de la realease :

  • /bin : exécutables pour créer un projet de base => nous allons utiliser ceci dans un premier temps
  • /demos : contiens différentes démos des classes => ne nous intéressera pas
  • /documentation : contient la doc de ZF 2.0
  • /library : contient le framework => très important
  • /resources : contient les traductions des validateurs
  • /test : contient les tests unitaires du framework
  • /working : ?????

Donc pour créer un projet rien de plus simple. Il vous suffit d’aller dans le répertoire bin, de mettre les droits nécéssairessur zf.sh et de lancer la commande suivante :

./zf.sh create project <path vers votre projet>
Attention : Lors de la création du projet, Zend ne copie pas le framework dans le dossier library, vous devez soit le faire vous même, soit le rajouter à l’include_path PHP

Etant dans un environnement de test et voulant faire marcher ce framework, je créer un alias du nom de zf2 pointant vers le dossier public. Je dois donc modifier le fichie /public.htaccess comme suit :

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /NOMALIAS/index.php [NC,L]

Maintenant en me rendant sur l’alias contenant mon projet : http://local/zf2, j’obtiens la page suivante :

En regardant la composition du framework Zend, nous observons qu’il a toujours la même répartition par rapport aux versions précédentes. La seule chose frapante par rapport aux anciennes sont le remplacement du nommage Pear (Nom_Classes) par les namespaces (Nom\Classes). Le IndexController.php en est un bon exemple :

<?php

class IndexController extends \Zend\Controller\Action
{

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

    public function indexAction()
    {
        // action body
    }
}

Maintenant que nous avons un projet ZF 2.0 prêt à être commencé, nous pouvons faire ce que nous voulons. Par exemple, nous allons créer une nouvelle action du nom de test et affichant seulement un « Essaie d’ajout de l’action test ».

Pour ce faire, nous allons juste rajouter la fonction testAction() à L’indexController comme suit :

<?php

class IndexController extends \Zend\Controller\Action
{

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

    public function indexAction()
    {
        // action body
    }

    public function testAction()
    {

    }
}

Puis maintenant nous allons créer notre vue associée : /application/views/scripts/index/test.phtml :

<?php echo "Essaie d'ajout de l'action test";

Maintenant rendez vous à l’adresse http://local/zf2/index/test et vous devriez avoir la page suivante :

Voilà, maintenant vous savez comment réaliser un projet basic avec le framework Zend 2.0. Je n’ai pas abordé les différents helpers et les différents modules du framework car je n’ai pas encore eu le temps de les tester. Si je tombe sur quelque chose d’intéressant je n’hésiterai pas à le publier sur le blog.