Académique Documents
Professionnel Documents
Culture Documents
Chap0-Démarrer Avec Symfony4
Chap0-Démarrer Avec Symfony4
FAYCEL EL AYEB
Démarrer avec Symfony4
Cette phrase résume tout, Symfony 4 c’est un vrai régal pour les
développeurs PHP.
Qu’est ce que c’est Symfony?
Si c’est votre début avec le framework Symfony, il faut savoir qu’il vous
faut de bases solides en PHP pour pouvoir travailler avec le framework.
La demande de l’utilisateur
(exemple : requête HTTP) est
reçue et interprétée par le
Contrôleur. Celui-ci utilise les
services du Modèle afin de
préparer les données à afficher.
Ensuite, le Contrôleur fournit ces
données à la Vue, qui les
présente à l’utilisateur (par
exemple sous la forme d’une
page HTML).
Le Composer
Quand vous travaillez sur un grand projet PHP, il arrive pour éviter de
recréer la roue et aller plus vite dans le développement de votre
application, d’utiliser des librairies externes comme pour la gestion de vos
utilisateurs ou un système d’envoie de mails, Composer va donc vous
permettre de gérer toutes vos dépendances sans trop se casser la tête.
Installation de Symfony
Maintenant que vous avez installer composer, et que vous savez ce qu’est
Symfony, nous allons procéder à l’installation du framework Symfony. Dans
ce tutoriel, nous allons utiliser la version LTS (Long Term Support) de
Symfony 4, la version 4.4.
Pour installer Symfony, nous pouvons soit utiliser composer ou l’installateur
Symfony, nous allons utiliser ici composer. Entrer donc cette ligne de
commande en vous plaçant dans le dossier dans lequel vous voulez créer
votre projet:
Ceci va créer le dossier blog qui va contenir votre projet et installer toutes
les dépendances de base d’une application web ordinaire comme le
moteur de templates Twig.
Installation de Symfony
Si vous avez juste besoin de créer une API, vous n’aurez pas besoin de
toutes ces dépendances, Symfony à aussi penser à vous, il suffit de faire:
$ composer create-project symfony/skeleton blog "4.4.*"
Avec cette installation, vous installez juste les dépendances basiques, pas
besoin de moteur de templates.
Nous allons utiliser la première avec symfony/website-skeleton parce que
nous créons une application web ordinaire.
Maintenant que notre projet a été créé, déplacez vous dans le dossier du
projet et lancer le serveur
$ cd blog
$ php bin/console server:start
Installation de Symfony
Si vous avez une erreur qui vous dit que la commande server:start n'est pas
défini, il faut donc installer un serveur de développement en faisant:
templates: Les vues de notre application sont ici, toutes les pages qui vont
être affichées à l'écran vont être ici.
tests: C’est ici que vous allez mettre les différents tests pour tester vos
fonctionnalités.
var: Dans ce dossier Symfony va mettre les caches et logs
vendor: Ce dossier contient toutes les dépendances créées avec
composer.
.env: Ce fichier définit les variables d’environnement de notre application,
il définit l’environnement dans lequel nous sommes, développement ou
production, les informations de connexion à la BDD, ...
Petit aperçu de quelques éléments:
#Contrôleur Frontal
Le contrôleur frontal est le fichier d’entré de notre application, toute
requête va passer par ce fichier avant de continuer. Le contrôleur frontal
de Symfony 4 se situe dans public/index.php il réceptionne donc toutes
les requêtes qui arrivent à notre application et renvoie la réponse
adéquate au client.
#php bin/console
Si vous vous rappelez bien, c'est la commande que nous avons écrite tout
à l'heure pour lancer le serveur. Celui ci représente en quelque sorte la
ligne de commande de Symfony, elle va par exemple nous permettre de
créer nos contrôleurs, créer des entités, des migrations etc. Pour voir
toutes les commandes possible, il suffit de faire:
$ php bin/console
Nous avons alors la liste de toutes les commandes disponibles, vous
pouvez donc lire la documentation de chaque commande et essayer de
comprendre ce qu'elle fait.
Petit aperçu de quelques éléments:
#Symfony Flex
Symfony Flex est un moyen d’installer et de gérer des applications Symfony. Il
automatise les tâches les plus courantes des applications Symfony. Il a été lancer
avec la version 4 de Symfony.
Flex est un plugin composer qui modifie le comportement des commandes
require, update et remove. Par exemple, lorsque nous exécutons la commande
require, l'application adresse une demande au serveur de Symfony Flex avant
d'essayer d'installer le package avec composer. S'il n'y a aucune information sur
le paquet que nous voulons installer, le serveur Flex ne renvoie rien et l'installation
du paquet suit la procédure habituelle basée sur Composer. S'il y a des
informations, Flex les renvoie dans un fichier appelé "recette" (recipes) et
l'application l'utilise pour décider quel package installer et quelles tâches
exécuter automatiquement après l'installation.
Les recettes sont définies dans un fichier manifest.json et les instructions définies
dans ce fichier sont également utilisées par Flex lors de la désinstallation des
dépendances pour annuler toutes les modifications.
L'une des forces de Symfony Flex, c'est quand vous installez un package, il
configure automatiquement le package dans le projet, en fonction de ce que
les développeurs du package ont mentionné dans le recipe, et quand vous le
supprimez, ça se passe automatiquement encore, toutes les configurations
relatives au package sont supprimées.
Petit aperçu de quelques éléments:
#Doctrine
Doctrine est ce qu’on appelle un ORM (Object Relational Mapper), pour
faire simple, il va nous permettre de créer, modifier, supprimer ou
récupérer des objets dans la base de données en utilisant des classes.
#Contrôleur
L’un des composants de l’acronyme MVC, le contrôleur est une fonction
PHP que nous allons créer et qui va permettre de lire une requête et
renvoyer une réponse, c’est tout son fonctionnement, recevoir une
requête et retourner une réponse.
# Route
La route représente le lien entre une URL et un contrôleur. Quand le
serveur reçoit une requête HTTP, symfony regarde dans le fichier
config/routes.yaml pour trouver la route, et cette route va définir le
contrôleur a appelé dans ce cas.
Petit aperçu de quelques éléments:
#Requêtes et Réponses
Symfony fournit une approche à travers deux classes pour interagir avec la
requête et la réponse HTTP. La classe Request est une représentation de la
requête HTTP, tandis que la classe Response est évidemment une représentation
de la réponse HTTP.
Pour créer une page avec Symfony, il faut remplir ces deux conditions:
créer une route
créer un contrôleur
homepage:
path: /
controller: App\Controller\BlogController::index
Nous créons une route qui s’appelle homepage dont le chemin est / et
qui a comme contrôleur la méthode index qui se trouve dans la classe
BlogController.
homepage:
path: /
controller: App\Controller\BlogController::index
Nous créons une route qui s’appelle homepage dont le chemin est / et
qui a comme contrôleur la méthode index qui se trouve dans la classe
BlogController.
Pour créer un contrôleur, nous pouvons soit aller nous même créer la
classe ou passer par la ligne de commande. Nous allons passer par la
ligne de commande.
$ php bin/console make:controller BlogController
Nous demandons à Symfony de nous créer le contrôleur BlogController,
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
Ici nous retournons une simple réponse avec la classe Response, cette
méthode de faire à ses limites quand on veut retourner une page HTML.
Vous imaginez écrire une page web entière dans du PHP? Impossible.
Retourner une page HTML