Voilà maintenant quelques jours que j’ai commencé à utiliser le framework symfony… J’avais déjà testé dans le passé deux autres frameworks, à savoir Ruby On Rails et Zend Framework. Ils ne m’avaient pas vraiment convaincu en terme de rapidité de développement. Je précise toutefois que je les avais utilisé à leur début, les choses se sont sûrement améliorées mais j’avais très envie de tester symfony :-)

Découverte de symfony

Pour faire mes premiers pas avec symfony, après avoir procédé à  l’installation de la version 1.1, je me suis dirigé vers le tutoriel My First Project. Il est plutôt bien fait, tout est expliqué en détails. Cela dit, je ne l’ai pas fait en entier, après avoir appris les bases du framework, je suis parti sur le tutoriel Askeet.

Le tutoriel Askeet est très bien fait et pour une fois on ne nous propose pas créer une bibliothèque/dvdthèque ou un blog mais une application dans le genre de Yahoo! Answers. Le petit problème avec ce tutoriel c’est qu’il est écrit pour le version 1.0 de symfony et que moi je voulais utiliser la dernière version, la 1.1. Bon, en réalité, on peut réussir en s’en sortir avec la 1.1, il faudra adapter le code parfois. Le plus gros du travail concerne les formulaires mais c’est alors l’occasion de lire le tutoriel symfony Forms in Action et de le mettre en pratique. Ça a été très instructif ! J’ai arrêté le tutoriel après une dizaine de jours (le tutoriel est organisation sous la forme d’un calendrier de l’Avant) estimant en avoir assez vu pour savoir si j’allais utilisé symfony ou non.

Mon avis

La première chose qui m’a surpris, dans le bon sens, avec symfony c’est les outils de débuggage. En effet, il est possible d’afficher tout un cas d’informations comme les requêtes SQL exécutées, les logs ou encore la configuration très facilement. Ces outils se présentent sous la forme d’une barre en haut à droite qui vous suit partout.

Ensuite, symfony est d’une facilité déconcertante ! En quelques lignes on se génère les classes “models”, on créé une application , un module, une page. Des bonnes connaissances de la programmation objet sont toutefois nécessaires.

Un autre truc que j’ai trouvé très bien, c’est le “Form Framework”. Il permet de gérer un formulaire très simplement. Il suffit de définir les champs et les validateurs à appliquer, le framework va alors s’occupe de générer le formulaire, de valider les données lors de l’envoi et le cas échéant retourner le formulaire avec les erreurs et les valeurs précédemment saisies pré-remplies.

Il y a un point sur lequel je suis assez partagé : le testeur de symfony. Peut-être suis-je trop habitué à SimpleTest ? Je pense que je reviendrais sur ce point dans un prochain billet (avec un plugin pour l’améliorer ?).

Conclusion

En seulement quelques jours, je n’ai pas pu découvrir toutes les fonctionnalités de symfony. Toutefois, j’en ai vu assez pour savoir qu’il est très puissant, assez facile à prendre en main (pour un développeur maitrisant la POO) et extensible. Je n’en ai pas parlé mais on peut ajouter des plugins et il en existe déjà de nombreux (voir la liste des plugins symfony).

Symfony est un outil que je pourrais utiliser pour réaliser un projet sans problème. C’est très agréable de développer avec !

Et maintenant, il me tarde de créer mes premières tasks, de tester le système d’évènements, d’utiliser l’internationalisation (i18n), créer mon premier plugin, de tester les tasks i18n:extract, pour extraire les chaînes à traduire, et i18n:find pour trouver les chaînes non-traduites, … :D