sept
12
2011

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 :

 Bash |  copy code |? 
1
./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 :

 Apache configuration |  copy code |? 
1
RewriteEngine On
2
RewriteCond %{REQUEST_FILENAME} -s [OR]
3
RewriteCond %{REQUEST_FILENAME} -l [OR]
4
RewriteCond %{REQUEST_FILENAME} -d
5
RewriteRule ^.*$ - [NC,L]
6
RewriteRule ^.*$ /NOMALIAS/index.php [NC,L]
7

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 |  copy code |? 
01
<?php
02
 
03
class IndexController extends \Zend\Controller\Action
04
{
05
 
06
    public function init()
07
    {
08
        /* Initialize action controller here */
09
    }
10
 
11
    public function indexAction()
12
    {
13
        // action body
14
    }
15
}

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 se faire, nous allons juste rajouter la fonction testAction() à L’indexController comme suit :

 PHP |  copy code |? 
01
<?php
02
 
03
class IndexController extends \Zend\Controller\Action
04
{
05
 
06
    public function init()
07
    {
08
        /* Initialize action controller here */
09
    }
10
 
11
    public function indexAction()
12
    {
13
        // action body
14
    }
15
 
16
    public function testAction()
17
    {
18
 
19
    }
20
}

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

 PHP |  copy code |? 
1
<?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.

Articles Connexes

A propos de l'Auteur: Benjamin Besse

Je suis Analyste Développeur chez Goomeo et je suis passioné par tout ce qui touche aux technologies du Web. J'ai commencé par apprendre l'utilisation du Framework Zend et j'ai continué naturellement via Android. Le tout seulement avec les bases acquises en DUT et Licence professionnelle Informatique.

5 Commentaires Donnez votre avis

  • Bonjour,

    D’après ton article, il n’y a presque pas de changements pour l’utilisateur, si ce n’est concernant les namespaces. En même temps il s’agit là d’un exemple très simple, pour faute de temps j’imagine.

    As-tu par contre eu le temps de regarder un peu les accès aux bases de données ?

  • Non, Je n’ai pas eu le temps de regarder cette partie, comme tu l’as vu, j’ai fais juste une introduction simple de cette version afin de voir les changements qu’il pouvait y avoir.

  • ZF 2.0 utilisera Doctrine (tout comme Symfony) pour l’accès à la base de données, ça fait partie des grands changements.

  • Doctrine ne sera pas inclus nativement dans Zend mais sera optionnel. Tout ce que Zend permettra c’est d’une intégration simplifiée.

  • Bonjour,

    est-ce normal qu’aujourd’hui ds la distrib ZF2, téléchargée comme ds GIT, le répertoire ./bin ne contient plus de zf.sh ou de zf.bin ?

Laisser un commentaire

Mots-Clefs