View
12
Download
1
Category
Preview:
Citation preview
Les Frameworks PHP et Symfony 4
Sommaire
1) Qu’est ce qu’un Framework PHP
2) Différents Frameworks PHP
3) Tendances sur le site Stack Overflow
4) Structure de Symfony 4
5) Les composants principaux de Symfony 4a) Structure du Frameworkb) Le routagec) Les contrôleursd) Les templatese) L’ORM Doctrinef) Symfony en ligne de commandeg) Les librairies
6) Conclusion
Qu’est-ce qu’un Framework PHP
● Un Framework PHP est un ensemble de composants structurés côté serveur
● Il sert à créer les fondations ainsi que les grandes lignes d’une application
● Avantages :○ Meilleure organisation du code○ Découpage logique du code source○ Factorisation de composants communs, réutilisabilité du code○ Meilleure maintenabilité et évolutivité
Différents Frameworks PHP
● Il existe une multitude de Frameworks PHP disponibles sur le web qui compte chacun :○ Différentes fonctions○ Différentes utilisations○ Différentes tailles
● Assez lourd
● Long à prendre en main
● Architecture MVC
● Système de routage performant
● Moteur de template efficace (Blade)
● Outil en ligne de commande (Artisan)
● ORM performant (Eloquent)
● Migrations
● Excellente documentation
● Très grande communauté
● ...
● Très léger
● Rapide à prendre en main
● Architecture MVC
● Système de routage performant
● Configuration simple
● Excellente documentation
● Grande communauté
● ...
● Assez lourd
● Long à prendre en main
● Architecture MVC
● Système de routage performant
● Moteur de template efficace (Twig)
● Outil en ligne de commande
● ORM performant (Doctrine)
● Migrations
● Configuration relativement simple
(YAML)
● Bonne documentation
● Très grande communauté
● ...
Tendances sur le site Stack Overflow
Source: www.stackoverflow.com
● Stack Overflow est un site web
proposant des questions et réponses sur
un large choix de thèmes concernant la
programmation informatique
Structure de Symfony 4
● Détails :○ “bin/” : Dossier contenant le fichier relatif à la console et aux tests unitaires○ “config/” : Dossier contenant les fichiers de configurations des routes et des
librairies○ “public/” : Dossier contenant les assets ainsi que le .htaccess○ “src/” : Dossier contenant les entités, les contrôleurs, les formulaires…○ “templates/” : Dossier contenant les templates de l’application○ “translations/” : Dossier contenant les fichiers de traduction○ “var/ “ : Dossier contenant les différents fichiers de caches et de logs○ “vendor/” : Dossier contenant les différentes librairies○ “.env” : Fichier contenant la configuration générale de l’application
Le routage avec Symfony 4
● Le système de routage de Symfony est très performant. Il inclut l’URL Rewriting ainsi que la
possibilité de filtrer les informations entrantes à l’aide d’expressions régulières
● De plus, quatres type de configuration sont disponibles :○ Annotations PHP○ YAML○ XML○ PHP
Le routage avec Symfony 4
● Exemple de configuration d’une route avec YAML
● Détails :○ Nom de la route○ Chemin d'accès à la route○ Contrôleur à appeler○ Définition de l’acceptation des paramètres passés à l’URL
grâce aux expressions régulières
Le routage avec Symfony 4
● Exemple de configuration d’une
route avec les annotations PHP
● Détails :○ Nom de la route○ Chemin d'accès à la route○ Définition de l’acceptation des
paramètres passés à l’URLgrâce aux expressions régulières
Les contrôleurs dans Symfony 4
● Les contrôleurs de Symfony héritent presque tous d’un contrôleur parent (AbstractController)
ayant déjà plusieurs méthode très utiles
● Ce sont eux qui renvoient les vues
● Ils peuvent aussi envoyer aux vues des informations récupérées depuis la base de données, des
formulaires...
Les contrôleurs dans Symfony 4
● Exemple d’un contrôleur renvoyant une vue
Les contrôleurs dans Symfony 4
● Exemple d’un contrôleur renvoyant une vue avec un
formulaire et vérifiant s’il a été rempli ou non
● Etapes :○ Instanciation de la classe “Tags”○ Création d’un formulaire○ Vérification de la validité du formulaire,
enregistrement des données, redirection○ Renvoi d’une vue en passant des informations
Les templates dans Symfony 4
● Symfony intègre un puissant moteur de template nommé Twig
● Il permet de rendre le code plus lisible et logique notamment pour les développeurs front (très
utile lors de projet en équipe)
Les templates dans Symfony 4
● Exemple d’une base de template avec
Twig
● Twig permet de définir des blocks
pouvant-être par la suite modifiés
Les templates dans Symfony 4
● Exemple d’une template avec Twig
● Détails :○ Template héritant d’une template de base○ Définition / Redéfinition du titre○ Insertion de contenu dans le block “body”○ Boucle de type foreach○ Lien via le nom d’une route (“welcome”)
L’ORM Doctrine
● Un ORM (object-relational mapping) est un type de programme informatique qui se place en
interface entre un programme applicatif et une base de données relationnelle pour simuler une
base de données orientée objet.
● Doctrine est donc un ORM pour PHP.
L’ORM Doctrine
● Exemple d’une entité
● Détails des spécificités des attributs
L’ORM Doctrine
● Exemple d’une requête en SQL et PDO classique
● Détails :○ Récupération de la connexion à la base de données○ Création de la requête○ Attribution des paramètres et exécution de la requête○ Récupération des données renvoyées par la requête
L’ORM Doctrine
● Exemple d’une requête en DQL (Doctrine Query Language)
● Détails :○ Récupération de l’entity manager○ Création de la requête○ Attribution des paramètres○ Exécution de la requête et récupération
des données retournées par celle-ci
Symfony 4 en ligne de commande
● Symfony intègre un fichier “bin/console” permettant d’être exécuté en ligne de commande
● Ce puissant outil permet de créer des contrôleurs, des entités, des formulaires, des CRUD
d’entités… et donc de réduire le temps de travail d’un développeur en lui évitant des tâches
répétitives (structure d’un contrôleur, Getters et Setters d’une entité…)
Symfony 4 en ligne de commande
● Commande permettant de créer un contrôleur
Symfony 4 en ligne de commande
● Commande permettant de créer une entité
Symfony 4 et les librairies● L’une des grandes forces de Symfony et d’autres Frameworks PHP réside dans les librairies
● En effet, beaucoup de développeur mettent à disposition des librairies qu’ils ont développé
● Par exemple, il existe des librairies pour :○ Traduire du code Markdown en code HTML○ Gérer la pagination○ Gérer l’authentification et la sécurisation de certaines pages○ …
● Symfony intègre plusieurs librairies par défaut, mais il est possible d’en installer à l’aide de l’outil
“Composer”.
● Le site https://packagist.org/ liste les un grand nombre de librairies pour Symfony
Conclusion
● Pour conclure, de manière générale, un Framework PHP permet :○ De gagner du temps dans le développement○ De mieux structurer et organiser son code○ De respecter des règles et un cadre○ De faciliter le travail en groupe
● Symfony est quant à lui un Framework complet intégrant beaucoup de fonctionnalités par défaut,
et pouvant évoluer à l’aide des ressources partagées par la communauté. De plus, il offre la
possibilité d’être compréhensible par tous les membres d’un projet grâce à son moteur de template
Twig et permet un gain de temps considérable grâce son système de commandes via terminal
Recommended