Pourquoi Symfony2 comme Framework
Une des évolutions les plus importantes dans la pratique de conception et développement web de ces 20 dernières années, les Frameworks (ou cadre de travail) possèdent de multiples avantages. Fini les bidouillages comme chez les brocanteurs et la réinvention de la roue à chaque projet. En effet, toutes les applications web utilisent les mêmes fonctionnalités (à savoir : connexion à une base de données, gestion de compte d’utilisateurs, gestion de l’authentification, etc.), et l’utilisation d’un Framework permet de ne plus avoir à refaire le même travail. Concrètement qu’est ce que cela signifie ? Et bien, cela se traduit par :
- Une utilisation des fonctions et méthodes écrits, testés et re-testés par des millions de personnes à ce qui implique une meilleure stabilité et une réduction de la marge de présence de bug
- Une réduction du temps de réalisation (par rapport à un projet ou tout se refait manuellement) à ce qui implique une réduction des coûts
- Il ne vous manque plus par la suite qu’à apporter les petits ajustements pour livrer un site personnalisé
Avantages de Symfony en tant que Framework
Symfony2 fait parti des Frameworks ayant actuellement le vent en poupe sur le secteur du développement web. Mais qu’est-ce qui fait cette popularité de Symfony2 ? Et bien la réponse se trouve dans ses particularités. Comme une liste vaut mieux que des phrases, alors :
- Compatible PHP 5 totalement orienté objet.
- Intègre l’architecture MVC et la méthode ORM.
- Licence MIT (tout ce qui est réalisé avec Symfony peut être vendu).
- Extensible et modulaire.
- Supporte ajax.
- Système de templates.
- Importante communauté très active.
- Très grand nombre de traductions.
- Conçu pour une utilisation professionnelle.
Pour les néophytes, cette liste peut être de l’araméen, alors je vous propose ci-dessous une traduction simplifiée.
1. Programmation par module pour la maintenabilité des codes et le travail en parallèle
Symfony2 permet un bon codage pour la maintenabilité des codes. Lors du développement du site, tous les modules (plutôt bundles en symfony2) sont installés par ligne de commande et suivent une structure bien posée. Chaque table de la base des données sera gérée en entité indépendante et une fois les classes de base des tables définies et mises en place, le site pourra être développé en plusieurs modules, permettant ainsi aux développeurs de travailler en parallèle
Avantage pour les demandeurs :
- Temps de réalisation réduit.
- Idéal pour les projets assez urgents.
2. Codes et modules réutilisables
De part la taille de sa communauté, une énorme base de modules développés pour Symfony peuvent être trouvés un peu partout sur le web. Ces modules ont été créés et testés par d’autres développeurs et sont réutilisables à souhait. Vous pouvez les voir sur http://knpbundles.com/
Avantage pour les demandeurs:
- Temps de réalisation réduit.
- Possibilité de présence de bugs réduit.
- Facile évolutivité du site avec la présence de plusieurs modules utilisables sur le web
3. Sécurité
Symfony2 possède un module natif pour sécuriser un site web, ainsi qu’un firewall (ou pare-feu) qui gère la procédure d’authentification. Cette procédure permet de déterminer si oui ou non une ressource ou page est disponible pour un simple visiteur anonyme ou si le visiteur doit s’authentifier pour y avoir accès.
Symfony possède en natif plusieurs couches de sécurité pour prévenir tout accès non souhaité à une ressource, et permet ainsi de réduire les possibilités de piratage. Toutefois, il est toujours recommandé d’installer un module complémentaire pour mieux sécuriser un site.
Avantage pour les demandeurs:
- Meilleure sécurisation du site par rapport aux autres Frameworks.
- Accès restreint aux ressources importantes du site.
4. Système de cache
Symfony2 possède déjà nativement un système de cache. Ce système se base sur la simplicité et la puissance du cache HTTP tel qu’il est défini dans la spécification HTTP). Au lieu de réinventer un processus de mise en cache, Symfony2 adopte la norme qui définit la communication de base sur le Web. Lors d’une mise en cache via HTTP, le cache est complètement séparé de l’application. Il est placé entre l’application et le client qui effectue les requêtes.
Symfony2 contient aussi un reverse proxy (aussi appelé passerelle de cache) écrit en PHP qui est une passerelle de cache HTTP: lors d’une communication, le cache stockera toutes les réponses qu’il estime « stockables » . Si la même ressource est demandée, le cache renvoie le contenu mis en cache au client, en ignorant entièrement l’application.
Avantage pour les demandeurs :
- Rapidité amélioré d’un site
Voilà ce que je pense de Symfony2 et de ses avantages par rapport aux autres Framework. Vous avez des remarques ou des questions ? N’hésitez pas à commenter, j’y répondrais avec plaisir. Par contre si l’article vous a convaincu et que vous voulez mettre votre site sous Symfony2, je vous suggère de vous rendre ici.
Sur ce, je vous souhaite une bonne journée les cocos !!!