Forum Php 2010 2ème journée
Deuxième journée du forum qui a débuté (pour moi) sur une super présentation du framework Symfony.
Introduction à symfony (Hugo Hamon)
Tout d’abord, présentation du framework, son histoire, ses commandes utiles, son arborescence bien pensée. Le framework est basé sur le modèle MVC et met à disposition des développeurs tout un tas d’outils :
- Configuration des URLs via des fichier yaml,
- Possibilité d’utiliser Propel ou Doctrine pour la gestion de BDD,
- Gestion des formulaires simplifiées,
- Gestion d’authentification et des droits,
- Gestion des normes i18n et l10n pour les langues,
- Génération de BackOffice.
- Gestion de l’envoi des mails avec la librairie swiftmailer qui gère les files d’attentes.
Le framework est très sécurisé, notamment contre les failles XSS et les injections SQL. Il est même possible (et recommandé) d’exposer qu’un seul dossier de l’application au web en modifiant la config Apache.
Il y a un millier de plugins disponibles pour apporter de nouvelles fonctionnalités.
Des frameworks pour les tests unitaires et fonctionnels sont incorporés et facilite la vie des développeurs.
Un inconvénient du framework est qu’il est très gourmand en ressources. Pour palier à ce problème il existe une batterie d’accessoires comme le cache APC, le cache de config yaml et le cache de requête SQL Doctrine.
La communauté est énorme et par conséquent on peut retrouver énormément de ressources sur la toile.
Quelques mots sur Symfony 2. Il utilisera nécesserement php 5.3 et utilisera un conteneur d’injection de dépendances qui permettra entre autre d’instancier uniquement les objets que l’on désire et donc de gagner en mémoire.
Introduction à Zend Framework (Gauthier Delamarre)
Contrairement à la précédente, j’ai trouvé beaucoup moins intéressant cette conférence.
Par principe nous avons eu droit à une présentation de l’histoire du Framework et son fonctionnement. Comme Symfony il utilise un design MVC et exploite au mieux php 5. Le couplage du code est faible et cela donne une extrême aisance aux développeurs.
ZF met à disposition un ensemble de fonctionnalités (Zend_Form, Zend_Db, Zend_ACl).
Le script Zf.sh (ou zf.bat pour les windows) permet, tout comme symfony, de créer sa structure de code. ZF met aussi à disposition une gestion d’erreurs qui récupère toutes les exceptions soulevées.
ZF 2 est prévu pour bientôt. Il sera lui aussi basé sur php 5.3 et il y aura normalement un moyen «facile» de faire migrer son code depuis l’ancienne version.
Et maintenant direction les nuages
Le Cloud Computing pour PHP (Guillaume Plessis)
Un interlocuteur très captivant nous attendait à cette conférence.
Le cloud est très en vogue en ce moment mais suscite beaucoup d’interrogations.
Il existe 3 modèles de Cloud :
IaaS : Infrastructure As A Service
Souvent basé sur la virtualisation, il s’agit en fait d’instances virtuelles jetables type Amazon que l’on utilise lorsque la demande est trop élevée en terme de montée en charge. Les avantages d’une telle solution sont que le système est totalement scalable. Les coûts sont ajouté avec en général une facturation à l’heure utilisée. De même on se décharge de la gestion du matériel. Cependant il est indispensable d’avoir un architecte pour gérer l’ensemble.
Dans tout ceci Php joue un rôle de pilotage (ex durant la conférence avec Amazon et quelques lignes de codes).
D’autres acteurs sont sur le marché : RockSpace, Gandi, SoPrivé
PaaS : Platform As A Sevice
C’est un serveur d’application clé en main. Ici on ajoute la couche logiciel système c’est à dire que les offres sont dédiées à un certain langage.
Les acteurs dans le milieu sont Heroku, Google App Engine, Windows Azure et bientôt Baobapp (Inscription gratuite pour la beta : http://www.baobapp.com Profitez-en !)
SaaS : Software As A Service
On ajoute encore une couche, cette fois-ci la couche application. C’est en général des applications dédiées en ligne (ex : Gmail).
Dans le cas de SaaS le language Php est assez restreint il possède juste un rôle de pilotage (exemple avec Zend_GData et Google Apps).
Le cloud c’est bien, mais attention à quelques points :
- Pas de support,
- Attention à la sécurité, les données se «baladent» sur la toile,
- Grosse dépendance vis à vis des fournisseurs, attention au taux d’indisponibilité
Le conseil de Guillaume est d’avoir un système hybride et donc des applications php capables d’être utilisées sur tous les types de cloud. Bien entendu cela nécessite un grand travail de réflexion avant d’avoir son application «cloud ready»
Suivi de qualité – PIC, Plate-forme d’Intégration Continue (Gabriele Santini)
Présentation d’un membre de chez SQLi sur le travail qu’ils ont mené sur un projet de la Gendarmerie nationale.
Mr Santini a commencé par mettre en avant toute la phase de réflexion qu’ils ont mené. Notamment de gros problèmes de code et de régressions au moment des livraisons. De même beaucoup de problèmes de maintenance sur l’application.
Une fois leur travail de réflexion terminé ils ont mis en place une plateforme d’intégration continue basée sur PhpUnderControl avec un ensemble de tests unitaires et fonctionnels exécutés à chaque build de l’application. Une grosse infrastructure a été mis en place pour l’occasion avec séparation des rôles sur les serveurs : seveur d’intégration, serveur PIC, serveur de versionning… L’objectif étant d’avoir un projet stable et sans régressions sur lequel la gendarmerie nationale peut avoir entièrement confiance. De même l’équipe doit avoir en temps réel des infos immédiates sur la structure du code.
Pour ce projet ils ont travaillé avec des partenaires comme Zend pour le côté structuration du code et AlterWay pour l’hébergement et la gestion des ressources matérielles.
Ils ont utilisé l’ensemble des modules présents dans PhpUnderControl (phpUnit, PMD, PHPCodeSniffer..) afin d’avoir des rapports quotidiens en xml adaptables en graph.
L’installation a été très difficile (cela me rappelle de bon souvenir chez Applibox
) avec une documentation d’installation dépassant les 100 pages ! Ils ont aussi développé un applicatif afin d’avoir aussi des résultats sur les performances des équipes.
L’ensemble a été «débianisé» de manière à ce que tout leur travaille s’installe en deux lignes de commandes (pas bête !).
A ce jour l’application n’est pas totalement livrée mais est en phase de test. Les risques devraient être mieux maitrisés et les équipes ont gagné en compétence de façon extraordinaire.
Certains parlent de migrer l’application sous Hudson avec l’utilisation du module Sonar.
HTML 5 : prêt à l’usage ? (Stéphane Deschamps, Julien Wajsberg)
Une présentation fort intéressante ayant pour but de faire le point sur cette nouvelle technologie dont tout le monde parle. Nous avons pu ainsi aborder rapidemment quelques notions :
- Possibilité d’utiliser des balises de structure (<header></header>..) et non plus des divs,
- Il existe des indicateurs de progression (barres de chargement),
- Apparition de nouveaux champs de type date, tel.. qui s’avère très utiles (exemple un Champ Téléphone sur Iphone affiche le clavier numérique),
- De même il est possible de donner des attributs de validation à ces nouveaux champs,
- Possibilité d’utiliser des canvas,
- Gestion Audio, Vidéo,
- Possibilité d’utiliser des bases de données côté client (je ne me souviens plus du nom
)
Le bon conseil est de commencer à « saupoudrer » nos sites d’html5, même si les navigateurs ne le gère pas tous, le code est conçu de telle manière que celà ne peut pas nuire à un site (un champ téléphone sera transformer en champ texte sur IE6).
Présentation de Doctrine 2 (Juozas Kaziukenas)
Salle comble pour la présentation de Juozas. Full english bien entendu ! Voilà ce qu’il en est resté :
Juozas a mis en avant le fait que Doctrine 1 était basé sur Active Record et que celà était très lent ! Malgré ceci Doctrine 1 est à ce jour et selon lui le meilleur ORM. Cette version était aussi très facile d’utilisation et surtout très stable.
Dans la version 2 tout est revu. Il est nécessaire d’utiliser php 5.3. Le découplage est parfait : «Doctrine2 is more clever than you»
Le fonctionnement est basé sur JPA 2 et donc fortement inspiré de Java.
4 points importants :
- Utilisation de Common : Collection de classe de caching event. Avec le passage d’information directement dans les commentaires comme dans Symfony.
- Utilisation de DBAL
- EntityManager : Plus besoins du «extends» pour les classes Model. On utilise directement un composant EntityManager pour traiter les données. De ce fait il est aussi plus simple de réaliser des tests unitaires sur les classes models. Grâce à ce procéder une seule transaction peut générer un grand nombre de requêtes.
- ODM NoSQL: Enfin il est aussi possible de lier des objets à une base NoSQL comme MongoDB par exemple en utilisant le composant DocumentManager.
La migration de 1 vers 2 risque d’être difficile et le refactoring sera nécessaire.
APC & Memcached the High Performance Duo (Ilia Alshanetsky)
Encore une fois une conférence de qualité (toujours in english
). Ilia nous a présenté APC et Memcached. Voici ce que j’ai pu retenir :
APC est très simple à utiliser, stable et puissant. Cependant il n’est utilisable que pour Php, seulement en local. De plus il met dans le même panier le cache d’upcode et le cache utilisateur.
Memcached est une amélioration de Memcache. Comme APC il peut directement être utilisé depuis le code PHP. Il est cependant utilisé uniquement pour le cache Utilisateur. Il est aussi capable de gérer plusieurs serveurs en utilisant des sockets (et non pas le protocole TCP).
Memcached peut aussi utiliser IgBinary qui permet de sérialiser le code. Cet outil permet de gagner 45% de rapidité par rapport aux méthodes PHP Classique. A l’inverse d’APC il est aussi utilisable par d’autres langages.
State of the MySQL Ecosystem (Kaj Arnö & Rasmus Johansson)
Je n’ai pu assister qu’à la moitié de cette conférence (mon train m’attendait
). Comme pour l’ouverture, gros problème d’affichage des slides, donc uniquement basé sur l’écoute. Kaj Arnö (SkySQL) a mis en avant le statut de Mysql depuis sont « transfert » chez Oracle.
Présentation des divers partenaires et des autres technos comme MariaDb.
The End
Fin de ce forum. Superbe édition, avec beaucoup de retours d’expérience très intéressants. Merci l’AFUP !

NBA players and the boss have on the agenda c trick in renegotiating Fusion yesterday, contemplate this weekend to reach a inexperienced collective bargaining contract at Christmas, and restart the game. And ESPN got the word that, an eye to this process to promote most fury, magic, the suntan, the Celtics and Lakers bosses, they hope this weekend or so both sides to reach an agreement.