Introduction à Zend Framework 2.0

Lundi 12 septembre 2011, 21:16

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.

Mots-clefs :

Throrïn
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.

Laisser un commentaire

Commentaires

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 ?

@Fierfeu : Oui celui ci a été retiré avec Zend_Tool il y a environ 4 mois. Nous verrons plus tard si celui ci est remis.
La raison de cette suppression est que l’architecture change beaucoup et que le script ne prenait pas la nouvelle en compte.

Bonjouur et bon boulout ,
Dans votre description vous parler de passer Naturellement de ZF à Android .
Qu’il y a t-il de naturel à ce passage?
Cdlt

J’ai eu envie de toucher à un vrai langage objet et j’ai été tenté par le développement Android depuis sa publication. Après ça m’a semblé naturel, en tant que développeur, de migrer vers Android. De toute façon au final je fais les deux en parallèle. Le java m’aide à avoir les bonnes approches avec le PHP orienté objet.