Fan de Web, développeur, admin système, amateur de photo et apprenti entrepreneur.

Posts Tagged: propel

Text

Un nouveau billet avec pas mal de retard sur la conférence Symfony Live, planning d’été oblige :)

Cette conférence avait l’originalité de se dérouler entièrement en ligne, un format de plus en plus à la mode qui a de nombreux avantages. Plus besoin de se déplacer et donc des frais réduits, une très bonne idée pour rendre les conférences accessibles au plus grand nombre.

Petite parenthèse technique, j’aurais aimé que les différents intervenants investissent dans du matériel de qualité car le résultat était très inégal.

Comme j’en parlais dans un précèdent billet, la direction que prend Symfony dans sa mouture 2.0 me laisse un peu perplexe et c’est pour cela que je tenais à participer à cette conférence.

State of Symfony (Fabien Potencier)

On commence donc avec Fabien qui nous parle justement de l’état d’avancement de Symfony2 et malheureusement il n’y avait pas grand-chose à se mettre sous la dent.

Il nous présente surtout des composants que l’on connaissait déjà pour peu qu’on le suive sur Twitter, nous avons donc :

On apprend également que la philosophie Symfony2 ne bougera plus même si le code n’est pas encore stable, qu’une version finale sera disponible avant la fin de l’année et que, pour le moment, aucun plan de migration pour les versions Symfony 1.x n’est prévu.

J’en reviens sur ce point, qui me semble pourtant important, dans des entreprises comme la mienne où 90% du chiffre d’affaire passe par des projets Symfony, la question de la migration est un point vital sachant que la fin du support Symfony 1.4 est planifié dans 2 ans et que le temps de migration de certains gros projets n’est pas négligeable. J’estime que, malheureusement, beaucoup de société vont se retrouver trop juste pour migrer leur produit en 2.0 et que beaucoup tourneront encore sous 1.4 après la fin du support.

J’ai été assez déçu de cette intervention, j’en attendais beaucoup d’éclaircissements mais rien de réellement neuf n’a été présenté.

Doctrine 2 (Johnathan Wage)

Un autre projet avec lequel j’ai quelques soucis, l’intervention m’intéressait donc beaucoup.

Johnathan Wage nous présente donc la version 2 de cet ORM avec comme grande avancé l’apparition d’un ODM (Object Document Mapper) qui permet de manipuler des documents issus de base NoSQL comme MongoDB. Je trouve cette fonctionnalité très prometteuse car le NoSQL se prête très bien à l’utilisation que l’on a des ORMs dans PHP.

Là où les choses se compliquent, c’est le nouveau système de “configuration” par annotation. J’ai vraiment du mal avec ce concept pour plusieurs raisons : l’absence de support directe dans PHP, dans les IDEs et le cauchemar pour le débogage. Autre point surprenant, l’obligation d’utiliser un contrôleur Doctrine pour pouvoir profiter de l’ORM, comment ce système va fonctionner lorsqu’on voudra utiliser un autre contrôleur en même temps ?

Enfin, on finit avec une présentation du Database Migration System, un outil qui permet de mettre à jour la base de données en suivant les modifications du schéma Doctrine. Même si je comprends l’idée de facilitation de la gestion de sa base de données pour des développeurs ne voulant pas toucher à leur serveur MySQL, ce genre d’automatisation peut être très dangereux en terme de coupure de service et de pertes de données. L’outil devrai, selon moi, se limiter à la génération des fichiers SQL et ne pas proposer l’exécution de ces derniers.

Test (Fabien Potencier)

On continue avec le nouveau module de test de Symfony2 et l’intégration du célèbre PHPUnit. Cela va apporter une intégration plus facile de ses projets Symfony2 dans les différents outils d’intégration continue et c’est une très bonne chose. On retrouve ici les composants présentés par Fabien en début de conférence et qui servent pour les tests fonctionnels.

On découvre aussi une fonctionnalité très pratique de PHPUnit, l’isolation des processus via un fork() pour empêcher les tests de tuer l’ensemble du système en cas d’erreurs fatales et de paralléliser ces derniers afin accélérer le processus. D’ailleurs, malgré l’affirmation de Fabien sur le fonctionnement de ce système sur Windows, cela risque de poser par mal de problème car le support du fork() n’est pas disponible sur cet environnement.

Fabien nous parle ensuite du très intéressant profiler qui va permettre de tester les performances de son application avec les temps d’exécutions et des statistiques sur les appels à la base de données, etc…

Finalement, une petite pensée pour le projet Sismo clairement abandonné.

Cache (Fabien Potencier)

Sûrement le point qui a fait le plus de bruits sur Internet, la présentation du nouveau système de cache de Symfony2.

Fabien commence très fort avec des benchmark : Symfony2 traitent 5 fois plus de requêtes que Symfony 1 … Impressionnant mais complètement inutilisable hors contexte ! On aurait aimé avoir les conditions du test, les sources de l’application qui a servi à les réaliser.

Vient ensuite la clé de ces statistiques incroyables : l’utilisation d’un reverse proxy directement dans le moteur Symfony2. L’idée est très intéressante même si je doute qu’elle soit réellement utilisée. Les sites assez gros pour être confrontés à la question de la cache auront déjà intégrés des solutions identiques au niveau de leurs serveurs HTTP, les autres n’auront sûrement pas besoin de ce genre de solutions.

Avec l’arrivée de ce reverse proxy, on découvre l’utilisation du protocole ESI d’Akamai qui permet de mettre en cache que quelques portions de ses pages et ainsi d’optimiser au mieux la gestion des éléments en caches. Il faut avouer qu’à part Akamai, à l’origine de la spécification, il y a encore peu de logiciel qui supportent complètement ce mode, limitant donc son utilisation.

Form FrameWork (Bernhard Schussek)

Le module qui me pose le plus de problèmes et qui me fait perdre le plus de temps dans mes applications Symfony actuelles est sûrement le Form FrameWork. Parti d’une très bonne idée, l’ensemble devient ingérable dès que l’on cherche à réaliser des formulaires un peu exotiques. J’attendais donc cette présentation espérant une remise à plat.

On retrouve une liste de Widget intéressant allant des classiques Text, Password, Hidden, etc… à ceux plus typés comme les Integer, Date, Percent, etc… L’ensemble est cohérent et l’utilisation est très agréable. On découvre également les Fields Group et Fields Collection qui permettent une gestion très simple des relations 1-n et n-n dans ces formulaires.

Vient ensuite la gestion des validations et là c’est la catastrophe ! On retrouve ici le fameux système d’annotation mais dans une version encore plus sournoise car elle embarque un pseudo langage … des heures de torture pour déboguer en perspective :)

Propel (François Zaninotto)

La surprise de cette conférence. Avec tout le buzz autour de Doctrine 2, je commençais à me faire à l’idée de voir disparaître cet ORM que j’utilise pourtant tous les jours.

On découvre la version 1.5 qui apporte pas mal de bonne idée tout en restant compatible 1.3 et 1.4. Il semble que les équipes de Propel ont à coeur d’aider au mieux la migration des projets anciens vers leurs nouvelles versions, chose que j’aurai aimé retrouver avec Symfony2.

Niveau requête, le Model Queries vient remplacer le vieillissant Criteria par un système découlant naturellement du plugin DbFinder de Francois Zaninotto, maintenant à la tête du projet Propel.

L’apparition de la Concrete Table dans Propel va permettre de gérer des héritages entre les tables et ainsi pourvoir créer des structures de bases qui colleront parfaitement à nos modèles PHP.

On trouve également l’Aggregate Table qui fonctionne comme des Triggers très simple côté PHP. Je trouve l’idée très bonne car, malgré l’avantage des Triggers, je me suis toujours refusé à ajouter de la programmabilité dans ma base de données, je trouve donc ici un compromis très utile. Reste à savoir comment le système gérera les corruptions de table.

Conclusion

Je n’ai malheureusement pas trouvé les réponses que j’espérais dans cette conférence Symfony Live, au contraire, je me trouve à nouveau dans une situation de doute qui m’oblige à jeter un oeil sur d’autre FrameWork et d’autres langages car quitte à devoir reprendre nos projets à zéro, autant trouver quelque chose de neuf.
 
Je trouve de plus en plus de monde qui semble également douter de l’avenir de Symfony, ce qui me réconforte dans l’idée qu’il y a peut-être un autre avenir dans le PHP.
 
Affaire à suivre.

Posted via email from Un blog ? Pour quoi faire ? | Comment »

Text

Juste une brève pour rassurer tout le monde : Non, ce blog n’est pas mort dès sa première semaine !

Mieux, j’ai même un paquet d’article en attentent d’écriture et pour vous faire patienter, en voici un aperçu :

  • Symfony 2.0 : Cette semaine, j’ai pris le temps de lire la preview de Symfony 2.0.
  • Propel 1.5 : Une autre préview, un autre article.
  • Web sur mobile : je suis en train de travailler sur une WebApp pour mobile, pas mal de particularités à faire partager

Bon … va falloir s’y mettre :)