La soirée été notamment animé par Arnaud Limbourg (développeur PEAR). On notera également la présence de Benjamin Sonntag, principal développeur d'AlternC qui vient d'obtenir le trophée du libre dans la catégorie PHP. Mais ne nous trompons pas la vedette de cette soirée était Zeev Suraski.

Zeev est un des développeurs historiques de PHP de même que Rasmus Lerdorf et Andi Gutmans. Zeev représentait la société ZEND Technologies qu'il a fondée en 1999 avec Andi Gutmans. Zend développe un framework distribué sous la nouvelle licence BSD dans l'optique de mieux positionner PHP dans le monde professionnel. Un autre objectif (mais inavoué) est de reprendre l'initiative sur le Framework Ruby on Rails dont le principal défaut est d'être développé en Ruby. Le langage Ruby a été créé 1 an avant PHP (1993) mais reste relativement peu connu. Le fait est que Ruby est entièrement orienté objet, ce qui est une difficulté. Le framework pour Ruby, Ruby on Rails est à l'origine de la notoriété actuelle du langage.

Un framework est un ensemble d'éléments indépendants permettant le développement rapide d'applications. Il fournit suffisamment des composants préfabriqués pour pouvoir produire une application abouti. Ces composants sont organisés pour être utilisés en interaction les uns avec les autres. On admet couramment que le framework est non seulement un ensemble de composants, mais aussi un ensemble de règles de développement et une architecture à laquelle se conforme le tout. L'architecture détermine l'organisation et le fonctionnement des applications utilisant le framework. Dans le cas d'application Web, le design Pattern MVC est largement répandu. Les règles de développements déterminent le nommage des variables, méthodes, classes , .. dans le but de normaliser les noms. Mais ce qui fait réellement un Framework, ce sont ces composants. Les composants sont des fonctionnalités (ou des bouts de fonctionnalité) que l'on utilise pour un projet. La logique est la suivante : plutôt que de réinventer la roue à chaque projet: j'en fais une bien et je la réutilise pour tous les projets.

L'utilisation d'un Framework apparaît donc comme une pratique à forte valeur ajoutée dans le développement d'une application. Le fait est que pour PHP, il existait jusqu'à présent de nombreux framework, mais aucun n'était suffisament aboutit pour s'imposer. Du côté de Nalis, la mise en place d'un Framework maison a commencé il y a 2 ans. L'analyse du Zend Framework est importante pour déterminer quel framework choisir pour les projets qui sont sur le point de commencer.

logo zend framework
L'architecture du Zend Framework est MVC, et utilise un point d'entrée unique (toutes les requêtes sont faites sur le même fichier). De plus l'utilisation la réécriture d'rul rend impossible d'exécuter un autre script php que le point unique. C'est un très bon point pour la sécurité d'une part, pour la lisibilité des actions et des url d'autres part. Les css et les images sont dans l'arborescence du serveur web, tous les autres fichiers sont en dehors . Cela évite donc l'exécution ou la récupération de code. Dans le Framework Nalis, les répertoires de code php sont protégé par des .htacess. Dans le cas de déploiement sur des serveurs mutualisés il peut-être difficile de mettre en place un répertoire en dehors du répertoire web. Toutefois, rien n'empêche d'utiliser le zend Framework de cette façon.

Les règles de développement sont assez classiques. Il serait peu intéressant de discuter de la qualité de tel formalisme plutôt qu'un autre. L'important est d'en choisir un et de s'y tenir !
Quelques composants (il y en a 22):
  • une couche d'abstraction d'accès aux données (Zend_Db) basé sur PDO
  • lecture de flux RSS (Zend_Feed)
  • envois de mails (Zend_Mail)
  • manipulation des fichiers PDF (Zend_Pdf)
  • Des webservices préprogrammés pour Amazon, Flickr, les API Google.. (Zend_Service)
  • Un système de cache (Zend_Cache) basé sur APC
  • Moteur de recherche (et son indexeur) : le Zend_Search est basé sur Lucene initialement développé en Java et porté pour PHP.
  • Pas encore d'Ajax pour l'instant, mais il semble que Dojo sera intégré prochainement.

Démonstration par Zeev
Zeev a fait la démonstration d'un bout de code qui ajoute un événement d'un événement dans son agenda Google. Plutot convaincant.


Ne nous trompons pas, le Zend Framework n'est pas une révolution, mais la création d'un référentiel qui regroupe toutes les meilleures idées et développement php pour concentrer l'effort de développement sur ce Framework. Dans le cas concret de Nalis, le Framework évolue vers sa version 2.0 dans l'optique d'un passage au Zend Framework en douceur. Une grande partie des composants utilisée par le Zend Framework est déjà utilisée dans le Framework Nalis. La version 1.0 du Zend Framework est attendue pour mars 2007.