Caution: You are browsing the legacy symfony 1.x part of this website.
Cover of the book Symfony 5: The Fast Track

Symfony 5: The Fast Track is the best book to learn modern Symfony development, from zero to production. +300 pages in full color showing how to combine Symfony with Docker, APIs, queues & async tasks, Webpack, Single-Page Applications, etc.

Buy printed version

Jour 23 : Un autre regard sur symfony

1.4 / Doctrine
Symfony version
1.2
Language ORM

Aujourd'hui est la dernière étape de notre voyage dans le merveilleux monde de symfony. Au cours de ces vingt-trois jours, vous avez appris symfony par exemple du modèle de design utilisés par le framework vers les puissantes fonctionnalités intégrées. Vous n'êtes pas encore un maître de symfony, mais vous avez toutes les connaissances nécessaires pour commencer à construire vos applications symfony avec confiance.

Comme nous terminons le tutoriel Jobeet, nous allons avoir un autre regard sur le framework. Oubliez Jobeet pendant une heure, et rappelez vous de toutes les fonctionnalités que vous avez apprises au cours des trois dernières semaines.

Qu'est-ce que symfony ?

Le framework symfony est un ensemble cohérent mais découplé en sous-framework, qui forme un Framework MVC full-stack (Modèle, Vue, Contrôleur).

Avant de coder la tête la première, prenez le temps de lire l'histoire de symfony et la philosophie. Ensuite, vérifiez les prérequis du framework et utiliser le script check_configuration.php pour valider votre configuration.

Finalement, installer symfony. Après quelque temps, vous voulez aussi mettre à jour la dernière version du framework.

Le framework offre également des outils pour faciliter son déploiement.

Le Modèle

La partie du modèle de symfony peut être fait avec l'aide de l'ORM Doctrine. Selon la description de la base de données, il génère des classes pour les objets, les formulairess et les filtres. Doctrine génère également les instructions SQL utilisées pour créer les tables dans la base de données.

La configuration de base de données peut être fait avec une tâche ou en modifiant un fichier de configuration. A côté de sa configuration, il est également possible d'injecter des données initiales, grâce aux fichiers fixture. Vous pouvez même rendre ces fichiers dynamiques.

Les objets Doctrine peuvent aussi facilement être internationalisés.

La Vue

Par défaut, la couche de la vue de l'architecture MVC utilise de simples fichiers PHP comme Templates.

Les Templates peuvent utiliser les helpers pour les tâches récurrentes comme la création d'une URL ou un lien.

Un Template peut être décorée par un layout pour extraire l'entête et le pied des pages. Pour faire des vues encore plus réutilisables, vous pouvez définir des slots, des partials et des components.

Pour accélérer les choses, vous pouvez utiliser le sous-framework de cache pour mettre en cache une page entière, juste l'action, ou même juste des partials ou des components. Vous pouvez également supprimer le cache manuellement.

Le Contrôleur

La partie contrôleur est géré par les contrôleurs frontaux et les actions.

Les tâches peuvent être utilisées pour créer des modules simples, des modules CRUD ou même pour générer des modules admin complétement fonctionnels pour les classes de modèle.

Les modules admin vous permettent de construire une application entièrement fonctionnelle sans rien coder.

Pour faire abstraction de la réalisation technique d'un site web, symfony utilise un sous-framework de routage qui génère des jolies URL. Pour faire l'implémentation encore plus facilement des services web, symfony prend en charge les formats. Vous pouvez également créer vos propres formats.

Une action peut être transmise à une autre ou redirigée.

Configuration

Le framework symfony permet facilement d'avoir différents paramètres de configuration pour différents environnements. Un environnement est un ensemble de paramètres qui permet des comportements différents sur le développement ou les serveurs de production. Vous pouvez également créer de nouveaux environnements.

Les fichiers de configuration de symfony peuvent être définis à différents niveaux et la plupart d'entre eux sont sensibles à l'environnement :

Les fichiers de configuration pour la plupart utilisent le format YAML.

Au lieu d'utiliser la structure de répertoire par défaut et d'organiser vos fichier de l'application par couches, vous pouvez également les organiser par fonctionnalité et pouvoir les regrouper dans un plugin. Comme nous parlons de la structure de répertoire par défaut, vous pouvez aussi la personnaliser selon vos besoins.

Débogage

De la journalisation au web debug toolbar, en passant par les exceptions significatives, symfony dispose de nombreux outils utiles pour aider le développeur à déboguer les problèmes plus rapidement.

Principaux objets de symfony

Le framework symfony fournit assez peu d'objets du noyau qui abstraitent les besoins récurrents dans les projets web : la requête, la réponse, l'utilisateur, la journalisation, le routage, l'envoi de courrier et le gestionnaire du cache de la vue.

Ces objets du noyau sont gérées par l'objet sfContext, et ils sont configurés via lesfactories.

Le user gère l'authentification des utilisateurs, l'autorisation, les flashes, et les attributs pour être sérialisés dans la session.

Sécurité

Le framework symfony intègre des protections contre les attaques XSS et CSRF. Ces paramètres peuvent être configurés à partir de la ligne de commande, ou en modifiant un fichier de configuration.

Le framework de formulaire fournit également des fonctionnalités intégrées de sécurité.

Formulaires

Comme la gestion des formulaires est l'une des tâches les plus fastidieuses pour un développeur web, symfony fournit un sous-framework de formulaire. Le framework de formulaire est livré avec un lot de widgets et de validateurs. L'un des atouts du sous-framework de formulaire est que les Templates sont très facilement personnalisables.

Si vous utilisez Doctrine, le framework de formulaire permet également de générer des formulaires et des filtres basés depuis vos modèles.

Internationalisation et régionalisation

L'internationalisation et la régionalisation sont supportés par symfony, grâce à la norme ICU. La culture de l'utilisateur détermine la langue et le pays de l'utilisateur. Elle peut être définie par l'utilisateur lui-même, ou incorporée dans l'URL.

Tests

La bibliothèque lime, utilisée pour les tests unitaires, fournit un grand nombre de méthodes de test. Les objets Doctrine peuvent aussi être testés à partir d'une base de données dédiée et avec des jeux de test dédiés.

Les tests unitaires peuvent être exécutés un par un ou tous ensembles.

Les tests fonctionnels sont écrit avec la classe sfFunctionalTest, qui utilise un simulateur de navigateur et permet l'introspection des objets du noyau de symfony grâce aux testeurs. Les testeurs existent pour l'objet de la requête, l'objet de la réponse, l'objet utilisateur, l'objet du formulaire actuel, la couche du cache et les objets Doctrine.

Vous pouvez également utiliser les outils de débogage pour la réponse et les formulaires.

Comme pour les tests unitaires, les tests fonctionnels peuvent être exécutés un par un ou tous ensembles.

Vous pouvez également exécuter tous les tests ensembles.

Plugins

Le framework symfony fournit seulement la fondation de vos applications web et s'appuie sur des plugins pour ajouter plus de fonctionnalités. Dans ce tutoriel, nous avons parlé sfGuardPlugin, sfFormExtraPlugin et sfTaskExtraPlugin.

Un plugin doit être activé après l'installation.

Le plugin est le meilleur moyen de contribuer en retour au projet symfony.

Tâches

Le CLI de symfony fournit une foule de tâches, et les plus utiles ont été expliquées dans ce tutoriel :

Vous pouvez également créer vos propres tâches.

À bientôt

L'apprentissage par la pratique

Le framework symfony, comme le fait n'importe quel morceau d'un logiciel, a une courbe d'apprentissage. Dans le processus d'apprentissage, la première étape est d'apprendre à partir d'exemples pratiques avec un livre comme celui-ci. La deuxième étape consiste à la pratique. Rien ne remplacera jamais la pratique.

C'est ce que vous pouvez commencer à faire aujourd'hui. Pensez au plus simple des projets web qui fournit toujours une certaine valeur : un gestionnaire de liste de todo, un simple blog, un convertisseur de devise ou de temps, quel qu'il soit ... Choisissez en un et commencez par appliquer la connaissance que vous avez aujourd'hui. Utilisez les messages d'aide pour apprendre les différentes options, consultez le code généré par symfony, utilisez un éditeur de texte qui supporte l'auto-complémentation PHP comme Eclipse et consultez le guide de référence pour parcourir toutes les configurations prévues par le framework.

Profitez de tous le matériel gratuit que vous avez à votre disposition pour en savoir plus sur symfony.

La communauté

Avant de vous quitter, je voudrais parler d'une dernière chose à propos de symfony. Le framework a beaucoup de fonctionnalités intéressantes et beaucoup de documentation gratuite. Mais, l'un des actifs les plus précieux d'un Open-Source est d'avoir sa communauté. Et symfony a l'une des communautés la plus étonnante et active. Si vous commencez à utiliser symfony pour vos projets, envisager de rejoindre la communauté symfony :