Framework Symfony
Symfony est un framework PHP conçu pour développer des applications web, des APIs, et des microservices. Créé par SensioLabs, il est devenu l’un des frameworks les plus populaires grâce à sa flexibilité, sa robustesse et son respect des standards.
Points Forts
- Modularité : Symfony est construit autour de composants indépendants (comme Symfony Console ou Symfony HTTP Client) qui peuvent être utilisés avec ou sans le framework complet.
- Flexibilité : Compatible avec des architectures monolithiques, des microservices et des applications modulaires.
- Interopérabilité : Respecte les normes PSR (PHP Standards Recommendations), facilitant l’intégration avec d’autres outils et bibliothèques.
- Écosystème : Propose un large éventail de bundles et d’outils pour accélérer le développement.
Usage
- Développement d’applications web complexes.
- Création d’APIs RESTful.
- Plateformes e-commerce.
- Systèmes de gestion d’entreprise (ERP, CRM).
- Intégration de microservices.
Caractéristiques
– Architecture MVC
Symfony adopte l’architecture Model-View-Controller, garantissant une séparation claire entre la logique métier, l’affichage et les contrôleurs.
– Composants Symfony
Symfony comprend plus de 50 composants indépendants, parmi lesquels :
- HTTPFoundation : Gestion des requêtes et réponses HTTP.
- Security : Authentification et autorisation avancées.
- Validator : Validation des données.
- Twig : Moteur de templates performant et sécurisé.
Bundles
Les bundles permettent d’ajouter facilement des fonctionnalités modulaires à une application :
- EasyAdmin (gestion d’administration).
- FOSUserBundle (gestion des utilisateurs).
- API Platform (construction d’APIs).
– Performance et Optimisation
Symfony inclut des fonctionnalités comme :
- Caching HTTP avec cache tags.
- Support natif de PHP 8 et au-delà pour des performances accrues.
- Intégration avec des systèmes de mise en cache (Redis, Varnish).
Avantages
– Scalabilité
Symfony est conçu pour des applications de toutes tailles, des sites simples aux systèmes complexes.
– Productivité
Avec des outils comme le profiler, les makers (génération automatique de code), et une documentation complète, Symfony accélère le développement.
– Support et Communauté
- Versions avec Support à Long Terme (LTS).
- Communauté active (meetups, forums, Slack).
- Événements annuels comme SymfonyCon.
Débuter avec Symfony
Développement
Liste ordonnée des types de fichiers à générer
Progressivement
- Environnement de développement
- # composer -v # php -v # composer create-project symfony/skeleton symfonymomoperf # cd symfonymomoperf
- # composer require webapp ” « y » afin d’avoir la possibilité d’utiliser Docker “
- Mise en route serveur local # php -S 127.0.0.1:8000 -t public
- Création : – . env.local env.local (copie .env) // Ligne 29 : – DATABASE_URL=mysql://root:’root’@127.0.0.1:8889/symfonymomoperf
- Création de la base de données # php bin/console doctrine:database:create
- Création controller # php bin/console make:controller
- Choose a name for your controller class (e.g. DeliciousKangarooController):
> IndexController // modifier la route #[Route(‘/’, name: ‘index’)]
- Template de base « Custumisation Twig »
- Ajout dossiers & fichiers:
- Templates « pages d’exemple en main (contact faq etc ) »
Public/images – Public/css – Menu – Header – Footer – Css - Ajouter à base twig « base.html.twig » Avant la balise </head> <link href=”https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css” rel=”stylesheet”> <link rel=”stylesheet” href=”/css/style.css”> <link rel=”stylesheet” href=”https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css”> Avant la balise </body> <script src=”https://cdn.jsdelivr.net/npm/bootstrap@5.3.0 alpha3/dist/js/bootstrap.bundle.min.js”></script>
- Mise en forme Index twig
- #
- #
#
#
- Entités et Base de Données:
- # php bin/console make:entity
- # php bin/console make:migration
- # bin/console doctrine:migrations:migrate
- Génération automatiquement
- # php bin/console make:crud
- fichiers et de fonctionnalités “Controleur, Twig et Form“
- Exemple : The class name of the entity to create CRUD (e.g. DeliciousKangaroo): > Page Choose a name for your controller class (e.g. PageController) [PageController]: > PageController Do you want to generate PHPUnit tests? [Experimental] (yes/no) [no]: > yes
- Formulaires pour gérer les entités
- # php bin/console make:form
- Contrôleurs pour Créer les points d’entrée pour les pages
- # php bin/console make:controller
- Sécurité pour configurer l’authentification et les autorisations
- Gestion des utilisateurs
- Symfony Security (inclus dans les projets Symfony WebApp) – à vérifier
- # composer require symfony/security-bundle
- # composer require symfony/maker-bundle –dev
- Password Hashing
- # composer require symfony/password-hasher
- Doctrine Fixtures
- # composer require orm-fixtures –dev
- # php bin/console make:security:form-login
- Ajoutez les rôles et règles d’accès dans security.yaml
- Fixtures pour générer des données de test pour les entités
- # composer require –dev orm-fixtures // Installer le package Fixtures
- # php bin/console make:fixtures // Générer les fichiers de fixtures
- # php bin/console doctrine:fixtures:load // Charger les fixtures
- Installer Faker (optionnel pour générer des données réalistes) : #composer require fakerphp/faker
- Ajouter des tests pour garantir la stabilité
- # composer require –dev symfony/test-pack // Installer PHPUnit
- # php bin/console make:test // Générer des tests
- API
- # composer require api // Installer API Platform + Configurer des endpoints pour les entités
Symfony est un framework PHP open-source utilisé pour le développement d’applications web et d’API. Créé en 2005 par SensioLabs, il est connu pour sa flexibilité, sa robustesse, et sa capacité à accélérer le développement grâce à un ensemble de composants réutilisables.
Symfony est particulièrement utilisé pour des projets de grande envergure comme les portails d’entreprise, les systèmes de gestion complexes, et les plateformes web performantes. 1. Site officiel de Symfony : – https://symfony.com – Contient des tutoriels, une documentation officielle, et des informations sur les versions et composants de Symfony. 2. Documentation officielle de Symfony https://symfony.com/doc/current/ – Documentation complète pour apprendre à utiliser Symfony et ses composants. 3. Packagist : Symfony Bundles https://packagist.org – Permet de rechercher des bundles Symfony populaires et de les intégrer à vos projets. 4. SensioLabs University– https://training.sensiolabs.com/ – Formations certifiées sur Symfony, adaptées à différents niveaux (débutants, avancés). 5. SymfonyCasts– https://symfonycasts.com/ – Une plateforme de formation avec des tutoriels vidéo interactifs sur Symfony et PHP. 6. GitHub : Symfony Repository – https://github.com/symfony/symfony – Le dépôt officiel de Symfony, utile pour contribuer ou explorer le code source. 7. Stack Overflow (Symfony) – https://stackoverflow.com/questions/tagged/symfony– Une communauté où poser des questions techniques sur Symfony. 8. Symfony Community Forums – https://symfony.com/community – Forum officiel pour échanger avec d’autres développeurs Symfony. 9. Awesome Symfony – https://github.com/sitepoint-editors/awesome-symfony – Une liste curatée de ressources Symfony, comprenant des tutoriels, outils, et bundles. 10. Tutoriels Symfony sur Medium – https://medium.com/tag/symfony – Articles techniques, études de cas et astuces pour Symfony publiés par des développeurs. |
Installation et Configuration du Framework Symfony
Vérifiez que PHP et Composer sont bien installés : Si nécessaire, téléchargez et installez : php -v composer -v Installez Symfony CLI (optionnel) : curl -sS https://get.symfony.com/cli/installer | bash mv ~/.symfony*/bin/symfony /usr/local/bin/symfony Symfony...