Développez vos applications web avec Symfony2 !

PRÉSENTATION GÉNÉRALE

logo_sf2

Nous y sommes, voici le premier chapitre de ce tutoriel. Nous allons ensemble découvrir Symfony2.
Tout d’abord, je lèverai le doute sur la première question qui se pose naturellement :

Symfony2, c’est quoi au juste ? Et d’où est-ce que ça sort d’ailleurs ?

Un nouveau regard sur son travail

Apprendre à mieux travailler

Actuellement, vous avez un niveau correct en PHP. Vous savez structurer votre code afin de réaliser des sites web plus ou moins basiques. Vous connaissez la programmation orientée objet et aimeriez bien enfin pouvoir l’appliquer sur un vrai projet, mais vous ne savez pas forcement comment vous y prendre. Vous avez besoin de clarifier ou de simplifier les choses dans votre code sans toutefois perdre trop de temps. Vous prenez les choses en mains et vous vous interrogez à propos d’une éventuelle solution à tous vos problèmes. Les frameworks sont là pour vous !

Mais bon, un framework, qu’est-ce que ça signifie ?

Que propose un framework ?

Un framework n’est pas indispensable pour réaliser une application web, mais il apporte ce qu’il faut pour être bien plus efficace, rapide et créer une application de qualité !
Un framework vous offre la possibilité de développer une application dans les règles de l’art. Il permet de réaliser une application structurée, maintenable et évolutive. De plus, la flexibilité du framework vous permet de vous concentrer entièrement sur votre application sans trop se soucier du reste.
N’ayez crainte, vous maîtrisez toujours l’intégralité de votre application. Le framework va vous apporter certaines briques de base qui permettent de ne pas avoir à réinventer la roue.

  • Abstraction de la base de données : un framework utilise PDO, une solution qui vous permet d’ajouter une couche d’abstraction entre votre base de données et votre code. Vous n’avez plus à vous soucier du type de base de données qui fonctionne derrière votre application. Un framework embarque aussi généralement un ORM (object relational mapper) qui permet d’installer une couche d’abstraction supplémentaire entre les appels à votre base de données et votre code. Vous pouvez ainsi faire des opérations courantes comme la récupération de données ou la sauvegarde d’un objet sans vous soucier du code SQL à écrire.

Image utilisateur

Abstraction de la base de données

  • Couche d’abstraction du cache : Plutôt que d’utiliser des fonctions de mise en cache spécifiques, vous allez pouvoir utiliser des fonctionnalités de mise en cache génériques telles que Memcache, APC et XCache.

  • Gestion des formulaires : Le framework offre la possibilité de générer en grande partie tous les widgets HTML, il se charge de la validation du formulaire et de la sécurité CSRF (Cross-Site Request Forgery).

  • Gestion d’utilisateurs : La plupart des frameworks ont tout ce qu’il faut pour pouvoir gérer l’authentification d’utilisateurs. Ils gèrent la connexion, la déconnexion, la création, la gestion des sessions et des droits.

  • Gestion des erreurs et bien plus : Certains frameworks comme Symfony offrent de très bon outils de débogage ainsi qu’un « profiler » qui permet de vous renseigner sur tout ce qu’il se passe dans votre application (variables globales, requêtes de base de données, logs, temps de chargement, etc.).

  • Internationalisation : Les frameworks vous permettent de créer facilement le multilingue pour vous et ce, de manière native la plupart du temps.

  • Moteur de template : De nombreux frameworks intègrent un moteur de templates. Celui-ci permet de simplifier grandement l’écriture de votre code HTML tout en étant propre et efficace.

Vous vous rendez compte du temps qu’il est possible de gagner :waw: ? Avec un framework vous n’avez plus à vous soucier de toutes ces choses si complexes et longues à mettre en place !

Pourquoi utiliser un framework ?

Il y a d’autres avantages à utiliser un framework. D’une part, un framework est portable, de part son abstraction de la base de données et de la gestion générique du cache. Vous l’aurez compris, les temps de développement avec un framework sont réellement plus courts. Tous les outils essentiels sont déjà écrits pour vous. Avec un framework, vous développez une application facilement sécurisable grâce aux systèmes d’authentification, à la gestion des injections SQL ainsi qu’à la protection CSRF qui est gérée par la plupart des frameworks. Les frameworks sont des outils communautaires et ont, par conséquent, des forums, des listes de diffusion et des canaux IRC pour les soutenir. Si vous rencontrez un problème avec un framework, les chances que quelqu’un d’autre ait déjà eu le même problème et ait apporté un correctif sont très grandes, notamment sur les frameworks largement déployés. Encore une bonne nouvelle, sachez que les membres de la communauté développent régulièrement des plugins et des modules que vous pouvez télécharger et utiliser dans votre application.

L’avantage d’un framework, c’est aussi de pouvoir travailler dans le respect des bonnes pratiques et de réutiliser des méthodologies de conception standardisées.
On peut particulièrement citer le design pattern MVC, accronyme de l’expression « Modèle – Vue – Contrôleur ». Un design pattern est traduit par « patron de conception », c’est donc un modèle qui a fait ses preuves et qui s’avère indispensable à connaitre dans le domaine de la programmation.
Découpons un peu tout ça :

  • Modèle : Le modèle est la partie du code qui se charge d’intéragir avec la base de données. On y retrouve donc les appels SQL que nous aurons définis.

  • Vue : La vue est la partie du code qui se charge uniquement d’afficher les données qui lui ont été fournies. En aucun cas, la vue ne doit effectuer de traitement sur les données, sauf dans le but d’en embelir l’affichage.

  • Contrôleur : Le contrôleur est le centre de notre design pattern. Il reçoit la requête HTTP, l’interprète et coordonne le tout. Il se charge de demander au modèle les données puis effectue plus ou moins de traitements dessus afin d’envoyer à la vue les données à afficher et de retourner une réponse à l’émeteur de la requête.

Image utilisateur

Schématisation du design pattern MVC
On remarque bien que chaque phase du travail est bien séparée, ce qui permet une organisation plus claire du code. Chaque chose à sa place.

Tout cela est réjouissant n’est-ce pas ? Sachez tout de même qu’apprendre à utiliser un framework n’est pas une mince affaire. Il faut beaucoup de temps, suivre des cours bien construits afin de parfaire vos connaissances et de maîtriser un nouvel outil. Mais n’oubliez pas que le jeu en vaut la chandelle.

Pourquoi choisir Symfony2 ?

Et pourquoi pas un autre ?

Symfony2 est un framework codé en PHP qui va nous permettre de développer une immensité d’applications web de la plus simple à la plus complexe imaginable.
Car en effet, Symfony définit un squelette de base à respecter, mais dans lequel on peut y mettre tout le code que l’on souhaite.

Il n’y a donc aucune limite ! Seule votre motivation pourra vous freiner, mais nous avons tous un énorme potentiel qui ne demande qu’à être exploité. Symfony2 est là pour nous aider à le mettre en avant.

Quelques framework PHP assez connus :

CakePHP

CodeIgniter

Zend Framework

Symfony2

cakephp

Image utilisateur

Image utilisateur

logo_sf2

CakePHP est un framework très simple d’utilisation. Facile à appréhender, il fournit un ensemble de briques de base solides et peut facilement être couplé à un ORM

Code Igniter est un très bon framework qui se fait de plus en plus connaitre de part sa qualité. Il n’embarque pas d’ORM mais dispose de l’essentiel pour répondre à la plupart des demandes.

Le ZendFramework est plus considéré comme une grosse bibliothèque de fonctionnalités plutôt qu’un framework à part entière et n’est pas très simple à comprendre pour un débutant. Dans sa version 2, il passe réellement dans la catégorie des frameworks avec une approche très proche de celle de Symfony2. Néanmoins, de solides connaissances sont aussi à prévoir afin d’exploiter correctement l’outil.

Symfony2 est un framework qui dispose d’un bon nombre de briques de base tout en laissant pas mal de libertés au développeur. Cependant, Symfony2 peut être délicat à aborder pour un débutant s’il n’a pas de bonnes connaissances en programmation orientée objet et une certaine maîtrise des technologies web est nécessaire pour en exploiter toute la puissance du produit.

Je vous laisse prendre votre propre décision, mais le sujet de ce tutoriel reste tout de même l’étude du framework Symfony. Je vais tout de même justifier mon choix en vous exposant certains points à connaitre sur le framework dans sa globalité :

Une grande réputation

Lancé en 2005, Symfony est aujourd’hui un framework stable connu et reconnu à l’international. Symfony dispose aussi une communauté active de développeurs, intégrateurs, utilisateurs et d’autres contributeurs qui participent à l’enrichissement continu de l’outil.

Qui est derrière tout ça ?

Image utilisateurDerrière Symfony se cache une entreprise : Sensio. Sensio est une agence web créée il y a 12 ans. Oui, ce sont bien des français qui sont derrière Symfony, plus particulièrement Fabien Potencier et toute son équipe. Imaginé au départ pour ses propres besoins, le framework Symfony est aujourd’hui encore l’outil utilisé au quotidien par ses propres équipes. Symfony est un outil qui arrive à répondre aux exigences du monde professionnel.

Image utilisateur

Fabien Potencier,
lead développeur du projet Symfony

Qui utilise Symfony ?

De nombreux sites et applications de toutes tailles et de tous les types !
C’est par exemple le cas de Yahoo!, Dailymotion, Opensky.com, Exercise.com et même des applications telles que phpBB.

De l’innovation

Symfony est tout ce que vous attendez d’un framework : rapidité, flexibilité, des composants réutilisables, etc.
De bonnes idées ont fait leur petit bout de chemin, c’est par exemple le cas de l’injection de dépendances. Un concept tout droit venu du monde du Java !
On retrouve aussi une « web debug toolbar » que l’ont peut retrouver dans d’autre framework et qui apporte un une bonne amélioration de la productivité des développeurs.

Avec Symfony, vous n’êtes jamais seul !

Lorsque vous utilisez Symfony, vous êtes assuré de ne jamais vous retrouvez seul. Une communauté se trouve à coté de vous ! Des conversations par mail sont partagées, des channels IRC existent pour que vous exposiez vos problèmes, de nombreux travaux sont publiés régulièrement et bien évidement, le Site du Zéro est là pour vous accompagner !

Utiliser, ré-utiliser, exploiter sans limites

L’idée est de pas vous enfermer dans Symfony ! Permettez-vous de construire des applications qui répondent précisément à vos besoins !
Symfony tend à respecter un maximum de conventions de codage. Ce n’est certes pas parfait, mais le framework s’efforce à respecter des standards comme PSR-0 et HTTP.
Image utilisateur
Enfin, Symfony est distribué sous licence Open Source MIT, qui n’impose pas de contraintes et permet le développement de l’Open Source ainsi que des applications propriétaires.

Alors, convaincu ?

Dans ce premier chapitre, mon but était de vous faire rendre compte de l’utilité d’un framework. Certains n’en verront pas la nécessité dans l’immédiat, d’autres vont prendre conscience de l’énorme quantité de temps qu’il est possible de gagner et se demanderont pourquoi ils ont attendu tout ce temps pour se mettre à utiliser un framework.
Enfin, le choix du framework va dépendre de vos envies et de vos besoins. Si Symfony vous motive, je vous invite à poursuivre avec son installation !

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s