Nous allons voir aujourd’hui des exemples de code sur Symfony 5. Il s’agit bien d’un retour d’expérience sur les bases de symfony 5.
Cet article se base sur les posts du blog de Yohan
J’ai essayé de regrouper les exemples dans un seul dépôt. tout en ajoutant/modifiant des parties. Un grand merci à Yohan 🙂
Le dépôt contient vraiment tout ce qu’il faut pour bien démarrer un projet Symfony.
Commencez de voir le fichier :
Ce fichier contient les différents services utilisés dans l’environnement local (db, phpmyadmin, maildev, redis, rabbitmq et apache). N’oubliez pas de voir le fichier Dockerfile du dossier php pour pouvoir ajouter des extensions php par exemple.
J’ai développé le projet sur gitlab et je ne sais pas pourquoi je partage ici github mais pas de problème :). Vous pouvez bien remplacer le fichier :
Par .travis.yml ou circleCI. L’essentiel est d’avoir ce genre de configuration dans vos projets afin de faciliter l’intégration continu et vérifier s’il y a eu des régressions. Normalement à chaque « push » ou « Pull Request »/ »Merge Request », le pipeline est déclenché.
Dans le lient suivant :

Nous avons le projet Symfony installé. Dans cette instance, il y a des exemples de l’intégration d’un template donné
- https://github.com/amine-betari/formation-symfony5/blob/master/project/webpack.config.js
- https://github.com/amine-betari/formation-symfony5/blob/master/project/package.json
- pour moi ce fichier est comme composer.json pour les dépendances PHP
- https://github.com/amine-betari/formation-symfony5/tree/master/project/assets
- https://github.com/amine-betari/formation-symfony5/blob/master/project/templates/base.html.twig

Ensuite vous allez trouver un bon exemple d’utilisation du composant HTTP Client


/**
* @Route("/covid", name="covid")
*/
public function covid(Request $request, GetData $callApiService): Response
{
// dd($callApiService->getFranceData());
// dd($callApiService->getAllData());
return $this->render('home/covid.html.twig', [
'data' => $callApiService->getFranceData(),
'departments' => $callApiService->getAllData(),
]);
}
- https://github.com/amine-betari/formation-symfony5/blob/master/project/src/Controller/DepartmentController.php
- https://github.com/amine-betari/formation-symfony5/blob/master/project/src/Controller/DepartmentController.php
Ensuite on peut trouver aussi des exemples du composant Workflow


- https://github.com/amine-betari/formation-symfony5/blob/master/project/config/packages/workflow.yaml
- https://github.com/amine-betari/formation-symfony5/blob/master/project/src/Controller/ToyRequestController.php
- https://github.com/amine-betari/formation-symfony5/blob/master/project/templates/toy_request/parent.html.twig
- https://github.com/amine-betari/formation-symfony5/blob/master/project/src/Events/WorkflowSubscriber.php
Nous enchaînons avec exemple du composant Messenger

- https://github.com/amine-betari/formation-symfony5/blob/master/project/src/Controller/HomeController.php#L23-L64
- https://github.com/amine-betari/formation-symfony5/blob/master/project/config/packages/messenger.yaml
- https://github.com/amine-betari/formation-symfony5/blob/master/project/src/Message/MailNotification.php
- https://github.com/amine-betari/formation-symfony5/blob/master/project/src/MessageHandler/MailNotificationHandler.php
- https://github.com/amine-betari/formation-symfony5/blob/master/project/.env#L39
Nous avons aussi des exemples du composant Security
- https://github.com/amine-betari/formation-symfony5/blob/master/project/config/packages/security.yaml
- https://github.com/amine-betari/formation-symfony5/blob/master/project/src/Security/UserAuthenticator.php
Le dépôt est riche avec d’autres exemples de commandes/Api platform avec l’installation du bundle JWT.
à suivre sur d’autres article Symfony ….