Development

Documentation/fr_FR/book/trunk/01-Introducing-Symfony

You must first sign up to be able to contribute.

Version 23 (modified by Eric.Roge, 11 years ago)
--

Cette page fait partie de la traduction en français de la documentation de Symfony. Il s'agit d'une version traduite encore incomplète qui peut comporter des erreurs. La seule version officielle est la version en anglais.

En quoi Symfony peut-il vous aider dans vos projets ? De quoi a-t'il besoin pour fonctionner ? C'est ce que nous allons voir dans ce chapitre.

Symfony en bref

Lors de la création d'applications, utiliser un cadre de développement accélère le travail en automatisant les nombreuses étapes qui reviennent de façon récurrente. En apportant sa structure, un cadre de développement guide le développeur lors de l'écriture, il l'aide à produire un code plus propre, plus efficace et plus facile à maintenir. De plus, les opérations complexes s'y retrouvent découpées en processus simples et organisés. Le développement s'en trouve facilité.

Symfony offre un cadre de développement complet, configuré pour accélérer le développement d'applications web grâce à plusieurs de ses fonctionnalités décisives. La première est sa structure même, qui guide les débutants en séparant distinctement les traitements liés aux modèle fonctionnel, de ceux qui sont du domaine de la présentation ou de la logique serveur. Ensuite, il propose au développeur de nombreuses classes et de nombreux outils qui assiste et accélère la création d'une application web complexe. Il automatise ainsi les tâches les plus courantes, permettant de se concentrer lors du développement sur le cœur de son application : ce qui la rend différente. Au final, le bénéfice apporté est tout simplement qu'à chaque application développé, il n'y a plus de temps perdu à réinventer la roue à chaque fois !

Symfony a été entièrement codé pour PHP 5. Il a été intensivement testé sur de nombreux sites en production ; de plus il est actuellement utilisé sur des sites d'e-commerce à très fort trafic. Symfony est compatible avec la majorité des moteurs de base de données comme MySQL, PostgreSQL, Oracle ou Microsoft SQL Server. Il fonctionne aussi bien sur les plateformes Windows que celles basées sur Unix. Voyons de plus près quelles sont ses fonctionnalités.

Les fonctionnalités de Symfony

Symfony a été conçu de façon à répondre aux besoins suivants :

  • Facilité d'installation et à configurer sur la plupart des plateformes (et fonctionnement garanti sur les plateformes standards *nix et Windows)
  • Indépendance vis-à-vis des moteurs de base de données
  • Simplicité dans l'utilisation pour la plupart des cas, mais également suffisamment de flexibilité pour s'adapter aux cas complexes
  • Une utilisation basée sur le principe convention plutôt que configuration :les développeurs n'ont besoin de définir que ce qui sort de l'ordinaire
  • Compatibilité avec les design patterns et les bonnes méthodes de conception
  • Paré pour l'entreprise : adaptabilité avec les standards et les architectures existants (IT), et une stabilité suffisante pour des projets à long terme
  • Un code très lisible et commenté à l'aide de phpDocumentor, pour une maintenance facile
  • Facilité d'extension permettant l'intégration avec d'autres bibliothèques commerciales

Automatise les fonctionnalités de vos projets Web

La plupart des fonctionnalités communes aux projets web sont automatisés avec Symfony ; comme par exemple :

  • L'interface d'internationalisation qui permet la traduction des données et des interfaces, ainsi que la localisation du contenu.
  • L'affichage utilise des gabarits et des mises en pages qui peuvent être construits par des graphistes HTML ne connaissant pas le framework. Les raccourcis réduisent la quantité de code de présentation à écrire en intégrant de grandes portions de code dans de simples appels de fonctions.
  • Les formulaires s'occupent automatiquement de la validation et du réaffichage des données saisies, assurant une bonne qualité des informations stockées dans la base de données ainsi qu'une meilleure expérience pour l'utilisateur.
  • L'affichage est échappé, protégeant les applications des attaques par données corrompues.
  • Les fonction de gestion de cache réduisent l'utilisation de bande passante et de charge serveur.
  • L'authentification et la gestion de droits facilite la gestion de la sécurité et la création de sections à accès restreint.
  • Le routing et les URLs intelligentes font de l'adresse de la page un élément de l'interface utilisable comme un moteur de recherche
  • Les fonctionnalités tels que l'outils d'écriture de couriel ou l'API de gestion permettent de dépasser es fonctionnalités classiques des navigateurs au sein de vos prochaines applications web.
  • Les affichages de données rendus ergonomiques grâce à la pagination automatique et aux possibilités de tri et de filtrage des données.
  • Les plugins, les extensions et les points d'accroche fournissent un haut degré d'extensibilité.
  • Les interactions à base d'ajax sont simples à installer : avec le système de raccourcis, les effets Javascript compatible multi-navigateur s'intègrent en une seule ligne.

Environnement de développement et Outils

Pour répondre aux besoins des entreprises ayant leurs propres normes de codage et leur propres règles de gestion de projet, Symfony peut être entièrement custumizé. Il fournit, par défaut, plusieurs environnements de développement et est livré avec de multiples outils permettant d'automatiser les tâches classiques en développement logiciel :

  • Les outils de génération de code sont capables de générer une interface d'administration en seulement un clic.
  • Les moteurs de tests fonctionnels et de tests unitaires intégrés à Symfony fournissent les outils parfaits pour permettre le développement orienté par tests.
  • Lorsqu'un développeur travaille sur une page, le panneau de débuggage accélère la correction des erreurs en lui affichant toutes les informations dont il a besoin.
  • L'interface en ligne de commande automatise le déploiement d'applications entre deux serveurs.
  • Les modifications de configuration à la volée sont possibles et efficaces.
  • Les outils de logs fournissent aux administrateurs tous les détails de l'activité d'une application

Qui a créé Symfony et Pourquoi ?

La première version de Symfony a été publiée en octobre 2005 par le fondateur du projet Fabien Potencier, le co-auteur de ce livre. Fabien est le PDG de Sensio (http://www.sensio.com), une agence web française bien connue pour sa vision innovante en matière de développement web.

En 2003, Fabien a passé du temps à étudier les outils de développement PHP open-source permettant la création d'application web. Il n'en a trouvé aucun répondant aux besoins décrits plus haut. Quand PHP 5 est sorti, il a alors décidé de rassembler les outils disponibles et suffisamment matures pour les intégrer dans un cadre de développement complet. Il a passé une année à écrire le cœur de Symfony, basant son travail sur le cœur du cadre de développement Mojavi (MVC), sur le moteur de correspondance objet-relation Propel (ORM) et sur le système de raccourcis dans les gabarits de ruby on Rails.

À l'origine, Symfony fut créé par Fabien pour les projets de Sensio ; en effet, disposer d'un cadre de développement efficace est la meilleure méthode pour développer des applications vite et efficacement. Celà rend également le développement web plus intuitif et les applications produites sont plus robustes et plus faciles à maintenir. Le cadre de développement ayant fait ses preuves lors du développement d'un site e-commerce d'un vendeur de vêtements, il fut ensuite réutilisé pour d'autres projets.

After successfully using symfony for a few projects, Fabien decided to release it under an open source license. He did so to donate this work to the community, to benefit from user feedback, to showcase Sensio's experience, and because it's fun.

Après avoir utilisé Symfony avec succès sur plusieurs projets, Fabien a décidé de le publier sous une licence open source. Il l'a fait pour livrer son travail à la communauté, pour bénéficier des retours des utilisateurs, pour démontrer l'expérience de Sensio. Et aussi parce que c'est fun.

Pourquoi « Symfony » et non pas « FooBarFramework » ? Parce que Fabien voulait un nom court contenant un s (comme Sensio) et un f (comme framework), facile à retenir et qui ne soit pas associé à un autre outil de développement. De plus il n'aime pas les majuscules. Symfony correspondait bien - même s'il n'est pas complètement anglais - et était disponible comme nom de projet. L'autre alternative était « baguette ».

Pour que Symfony soit un projet open-source à succès, il avait besoin d'une documentation complète, en anglais, pour accélérer sa vitesse d'adoption. Fabien a demandé à François Zaninotto - employé de Sensio et co-auteur de ce livre - de se pencher sur le code du projet et d'en tirer un livre en ligne. Celà a pris un bon moment, mais lorsque le projet a été rendu public, il était assez documenté pour attirer de nombreux développeurs. La suite appartient à l'histoire.

La communauté Symfony

Dès le lancement du site de Symfony (http://www.symfony-project.com), de nombreux développeurs du monde entier ont téléchargé et essayé l'outil, ont lu la documentation en ligne, construit leurs premières applications web avec Symfony et le buzz a commencé à monter.

Les cadres de développement d'applications web ont gagné en popularité à ce moment-là et la demande d'un cadre de développement PHP complet était élevée. Symfony offrait une solution complète grâce à son code de grande qualité et à la documentation complète disponible ; deux atouts majeurs par rapport aux autres acteurs sur la scène des cadres de développement. Les contributeurs ont commencé à apparaitre, proposant patchs et améliorations, validant la documentation, s'investissant dans toutes sortes de tâches de grande très prenantes.

Le dépos publique des fichiers source du projet et le système de ticket offrent différentes manières de contribuer et tous les volontaires sont les bienvenus. Fabien reste le gestionnaire et décideur principal du code source du projet, garantissant ainsi la qualité du code.

Aujourd'hui, les forums Symfony, les listes mail et l'espace de discution (IRC) offrent un support idéal aux utilisateurs, où l'on observe que chaque question reçoit une moyenne de quatre réponses. De nouveaux utilisateurs installent Symfony chaque jour, le wiki et les sections de dépos de code hébergent un grand nombre de documentations rédigés par des volontaires. Chaque semaine, en moyenne cinq nouvelles applications déclarent utiliser Symfony ; et le décompte continue.

La communauté Symfony est la troisième force du projet et nous espérons que vous nous rejoindrez après avoir lu ce livre.