Logs
Consultez les logs.
OK
Liste des données
Consultez la liste des données.
OK
Loading...
Formulaire
Saisissez vos données.
Enregistrer
Annuler

Système de covoiturage

Vues
179

Le but de ce tutoriel est de vous apprendre à programmer en PHP.
Produit par Gérard KESSE.



Introduction


Bienvenue dans ce tutoriel consacré à la présentation du processus de conception d'un système de covoiturage en PHP 8 avec Symfony 7 sous Windows. Nous créerons la structure de notre projet Symfony avec la commande (composer). Nous lancerons notre serveur web avec la commande (php). Nous utiliserons VSCode comme éditeur de code avec les extensions (PHP Intelephense) pour la gestion de l'auto-complétions, (PHP Namespace Resolver) pour la résolution des espaces de noms et (Bracket Pair Colorization Toggler) pour la colorisation des pairs d'accolades. Nous familiarisons avec l'architecture MVC (Modèle-Vue-Contrôleur) qui est le modèle autour duquel s'articule un projet Symfony. Tout le long du développement, nous nous efforcerons à respecter les bonnes pratiques en ingénierie logiciel. Nous veillerons à respecter les principes SOLID pour faciliter la compréhension du code ainsi que sa maintenance et son évolution, les principes DRY pour éviter la duplication de base de code et nous nous interdirons de créer des objets incomplets.


Création du projet


La structure d'un projet Symfony s'articule autour de l'architecture MVC (Modèle-Vue-Contrôleur). Nous simplifions la création de la structure de notre projet Symfony en utilisant la ligne de commande.


Structure du projet


Nous créons la structure de notre projet Symfony avec la commande (composer):

composer create-project symfony/skeleton:"7.1.*" rdv_systeme_covoiturage

Fonctionnalités web


Les fonctionnalités web apportent à notre projet Symfony l'ensemble des modules nécessaires au développement d'une application web.

Nous initialisons les fonctionnalités web dans projet Symfony avec la commande (composer). Nous acceptons le fichier de configuration docker pour l'avenir:

composer require webapp


Démarrage du serveur


Le démarrage du serveur web permet de mettre notre projet Symfony en ligne et de rendre notre système de covoiturage disponible pour tous.

Nous démarrons le serveur avec la commande (php) en indiquant l'adresse du serveur (localhost), le numéro de port du serveur (8000) et le répertoire racine du serveur (public):

php -S localhost:8000 -t public

Nous affichons notre système de covoiturage dans un navigateur web:

http://localhost:8000/


Variables d'environnement


Les variables d'environnement permettent de modifier dynamiquement les fonctionnalités de notre projet Symfony sans avoir à reconstruire et à redéployer notre projet web.


Variables d'environnement par défaut de Symfony


Nous créons un chargeur de variables de variables d'environnement avec la classe Symfony (DotEnv). Nous vérifions l'existence de la classe (DotEnv) avec la fonction (class_exists). Si la classe (DotEnv) existe, nous chargeons le fichier de définition des variables d'environnement par défaut de Symfony (.env) avec la méthode (loadEnv) de la classe (DotEnv). Si la classe (DotEnv) n'existe pas nous levons une exception avec la classe (RuntimeException).

Variables d'environnement personnalisés


Nous fournissons la possibilité de créer notre propre fichier personnalisé de définition des variables d'environnement (.rdv_env.local.php). Dans ce contexte, nous chargeons le contenu du fichier avec l'opérateur d'inclusion de fichier (include) suivi de l'opérateur de contrôle des erreurs (@) afin d'ignorer les messages d'erreur en cas de non présence du fichier personnalisé (.rdv_env.local.php). Nous définissons le fichier personnalisé (.rdv_env.local.php) de telle manière à ce qu'il retourne un tableau (array) contenant toutes nos variables d'environnement. Nous vérifions par la suite que le retour du fichier personnalisé (.rdv_env.local.php) est un tableau avec la méthode (is_array).

Exception générique


Une exception permet gérer les conditions exceptionnelles lors de l'exécution de notre projet. Lorsqu'une exception se produit, l'exécution normale de notre projet est interrompue et l'exception est traitée. La classe (Exception) est la classe de base de toutes les exceptions.

Exception d'exécution


Une exception d'exécution (RuntimeException) est une exception que nous levons dans le cadre de notre projet pour des opérations qui devraient normalement fonctionner, mais qui finalement, se passent mal. Les exceptions d'exécution (RuntimeException) sont à privilégier que les exceptions génériques (Exception).