27
Les Frameworks PHP et Symfony 4

Symfony 4 Les Frameworks PHP etiamalex.fr/assets/files/les-frameworks-php-et-Symfony-4.pdf · 2019-04-07 · Symfony 4 et les librairies L’une des grandes forces de Symfony et d’autres

  • Upload
    others

  • View
    12

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Symfony 4 Les Frameworks PHP etiamalex.fr/assets/files/les-frameworks-php-et-Symfony-4.pdf · 2019-04-07 · Symfony 4 et les librairies L’une des grandes forces de Symfony et d’autres

Les Frameworks PHP et Symfony 4

Page 2: Symfony 4 Les Frameworks PHP etiamalex.fr/assets/files/les-frameworks-php-et-Symfony-4.pdf · 2019-04-07 · Symfony 4 et les librairies L’une des grandes forces de Symfony et d’autres

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

Page 3: Symfony 4 Les Frameworks PHP etiamalex.fr/assets/files/les-frameworks-php-et-Symfony-4.pdf · 2019-04-07 · Symfony 4 et les librairies L’une des grandes forces de Symfony et d’autres

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é

Page 4: Symfony 4 Les Frameworks PHP etiamalex.fr/assets/files/les-frameworks-php-et-Symfony-4.pdf · 2019-04-07 · Symfony 4 et les librairies L’une des grandes forces de Symfony et d’autres

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

Page 5: Symfony 4 Les Frameworks PHP etiamalex.fr/assets/files/les-frameworks-php-et-Symfony-4.pdf · 2019-04-07 · Symfony 4 et les librairies L’une des grandes forces de Symfony et d’autres

● 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é

● ...

Page 6: Symfony 4 Les Frameworks PHP etiamalex.fr/assets/files/les-frameworks-php-et-Symfony-4.pdf · 2019-04-07 · Symfony 4 et les librairies L’une des grandes forces de Symfony et d’autres

● Très léger

● Rapide à prendre en main

● Architecture MVC

● Système de routage performant

● Configuration simple

● Excellente documentation

● Grande communauté

● ...

Page 7: Symfony 4 Les Frameworks PHP etiamalex.fr/assets/files/les-frameworks-php-et-Symfony-4.pdf · 2019-04-07 · Symfony 4 et les librairies L’une des grandes forces de Symfony et d’autres

● 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é

● ...

Page 8: Symfony 4 Les Frameworks PHP etiamalex.fr/assets/files/les-frameworks-php-et-Symfony-4.pdf · 2019-04-07 · Symfony 4 et les librairies L’une des grandes forces de Symfony et d’autres

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

Page 9: Symfony 4 Les Frameworks PHP etiamalex.fr/assets/files/les-frameworks-php-et-Symfony-4.pdf · 2019-04-07 · Symfony 4 et les librairies L’une des grandes forces de Symfony et d’autres

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

Page 10: Symfony 4 Les Frameworks PHP etiamalex.fr/assets/files/les-frameworks-php-et-Symfony-4.pdf · 2019-04-07 · Symfony 4 et les librairies L’une des grandes forces de Symfony et d’autres

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

Page 11: Symfony 4 Les Frameworks PHP etiamalex.fr/assets/files/les-frameworks-php-et-Symfony-4.pdf · 2019-04-07 · Symfony 4 et les librairies L’une des grandes forces de Symfony et d’autres

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

Page 12: Symfony 4 Les Frameworks PHP etiamalex.fr/assets/files/les-frameworks-php-et-Symfony-4.pdf · 2019-04-07 · Symfony 4 et les librairies L’une des grandes forces de Symfony et d’autres

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

Page 13: Symfony 4 Les Frameworks PHP etiamalex.fr/assets/files/les-frameworks-php-et-Symfony-4.pdf · 2019-04-07 · Symfony 4 et les librairies L’une des grandes forces de Symfony et d’autres

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...

Page 14: Symfony 4 Les Frameworks PHP etiamalex.fr/assets/files/les-frameworks-php-et-Symfony-4.pdf · 2019-04-07 · Symfony 4 et les librairies L’une des grandes forces de Symfony et d’autres

Les contrôleurs dans Symfony 4

● Exemple d’un contrôleur renvoyant une vue

Page 15: Symfony 4 Les Frameworks PHP etiamalex.fr/assets/files/les-frameworks-php-et-Symfony-4.pdf · 2019-04-07 · Symfony 4 et les librairies L’une des grandes forces de Symfony et d’autres

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

Page 16: Symfony 4 Les Frameworks PHP etiamalex.fr/assets/files/les-frameworks-php-et-Symfony-4.pdf · 2019-04-07 · Symfony 4 et les librairies L’une des grandes forces de Symfony et d’autres

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)

Page 17: Symfony 4 Les Frameworks PHP etiamalex.fr/assets/files/les-frameworks-php-et-Symfony-4.pdf · 2019-04-07 · Symfony 4 et les librairies L’une des grandes forces de Symfony et d’autres

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

Page 18: Symfony 4 Les Frameworks PHP etiamalex.fr/assets/files/les-frameworks-php-et-Symfony-4.pdf · 2019-04-07 · Symfony 4 et les librairies L’une des grandes forces de Symfony et d’autres

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”)

Page 19: Symfony 4 Les Frameworks PHP etiamalex.fr/assets/files/les-frameworks-php-et-Symfony-4.pdf · 2019-04-07 · Symfony 4 et les librairies L’une des grandes forces de Symfony et d’autres

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.

Page 20: Symfony 4 Les Frameworks PHP etiamalex.fr/assets/files/les-frameworks-php-et-Symfony-4.pdf · 2019-04-07 · Symfony 4 et les librairies L’une des grandes forces de Symfony et d’autres

L’ORM Doctrine

● Exemple d’une entité

● Détails des spécificités des attributs

Page 21: Symfony 4 Les Frameworks PHP etiamalex.fr/assets/files/les-frameworks-php-et-Symfony-4.pdf · 2019-04-07 · Symfony 4 et les librairies L’une des grandes forces de Symfony et d’autres

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

Page 22: Symfony 4 Les Frameworks PHP etiamalex.fr/assets/files/les-frameworks-php-et-Symfony-4.pdf · 2019-04-07 · Symfony 4 et les librairies L’une des grandes forces de Symfony et d’autres

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

Page 23: Symfony 4 Les Frameworks PHP etiamalex.fr/assets/files/les-frameworks-php-et-Symfony-4.pdf · 2019-04-07 · Symfony 4 et les librairies L’une des grandes forces de Symfony et d’autres

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é…)

Page 24: Symfony 4 Les Frameworks PHP etiamalex.fr/assets/files/les-frameworks-php-et-Symfony-4.pdf · 2019-04-07 · Symfony 4 et les librairies L’une des grandes forces de Symfony et d’autres

Symfony 4 en ligne de commande

● Commande permettant de créer un contrôleur

Page 25: Symfony 4 Les Frameworks PHP etiamalex.fr/assets/files/les-frameworks-php-et-Symfony-4.pdf · 2019-04-07 · Symfony 4 et les librairies L’une des grandes forces de Symfony et d’autres

Symfony 4 en ligne de commande

● Commande permettant de créer une entité

Page 26: Symfony 4 Les Frameworks PHP etiamalex.fr/assets/files/les-frameworks-php-et-Symfony-4.pdf · 2019-04-07 · Symfony 4 et les librairies L’une des grandes forces de Symfony et d’autres

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

Page 27: Symfony 4 Les Frameworks PHP etiamalex.fr/assets/files/les-frameworks-php-et-Symfony-4.pdf · 2019-04-07 · Symfony 4 et les librairies L’une des grandes forces de Symfony et d’autres

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