13. Annexes
13.1. Installation de PHP
Les exemples et l'étude de cas demandent [PHP] 8.4 ou une version plus récente, avec les extensions [intl] (la mise en forme des nombres, exemple 16), [pdo_mysql] (l'accès à [MySQL], exemple 28 et étude de cas), [mbstring] et [openssl]. Ils ont été testés avec la version 8.4.
Sous [Windows], le plus simple est [Laragon] (laragon.org), qui installe en une fois [PHP], [Composer], un serveur [MySQL] et l'outil d'administration [HeidiSQL]. Si la version de [PHP] fournie est antérieure à 8.4, on en télécharge une plus récente sur windows.php.net/download (version *Thread Safe*, archive [.zip]), que l'on décompresse dans le dossier [bin\php] de [Laragon] ; le menu PHP / Version de [Laragon] permet alors de la choisir. Le menu PHP / Extensions active une extension d'un clic ([intl], [pdo_mysql]). Le terminal de [Laragon] (bouton Terminal) connaît les commandes [php], [composer] et [mysql].
Sans [Laragon], on décompresse l'archive de [PHP] dans un dossier ([C:\php]), on ajoute ce dossier à la variable d'environnement [Path], puis on crée le fichier de configuration [php.ini] en copiant [php.ini-development], et l'on y retire le point-virgule qui commente les lignes des extensions nécessaires :
Sous [macOS], le gestionnaire de paquets [Homebrew] installe [PHP] et ses extensions courantes : [brew install php]. Sous [Linux] ([Ubuntu]), la version fournie par la distribution est souvent plus ancienne ; le dépôt [ppa:ondrej/php] fournit les versions récentes :
On vérifie l'installation dans une nouvelle console :
La première commande doit afficher un numéro de version égal ou supérieur à 8.4 (par exemple [PHP 8.4.12]) ; la seconde liste les extensions chargées, parmi lesquelles [intl] et [pdo_mysql]. La commande [php --ini] indique quel fichier [php.ini] est utilisé.
13.2. Composer
[Composer] est le gestionnaire de bibliothèques de [PHP] (getcomposer.org). Il est fourni par [Laragon] ; sous [Windows], sans [Laragon], on utilise son installateur ([Composer-Setup.exe]) ; sous [macOS], [brew install composer] ; sous [Linux], les instructions de la page getcomposer.org/download. On vérifie l'installation :
Les commandes utiles, dans le dossier d'un projet (celui qui contient [composer.json]) :
[Composer] télécharge les bibliothèques depuis le dépôt [Packagist] (packagist.org) : il faut une connexion Internet lors de l'installation. Derrière un proxy d'entreprise, on indique le proxy par les variables d'environnement [HTTP_PROXY] et [HTTPS_PROXY]. Le dossier [vendor] ne se copie pas d'une machine à l'autre (il peut contenir des chemins absolus, et il est volumineux) : on le recrée par [composer install]. C'est pourquoi il ne fait pas partie des codes du cours. Le dossier [exemples] a son dossier [vendor], partagé par les 28 exemples ; l'étude de cas a le sien.
13.3. Installation de Visual Studio Code
[Visual Studio Code] se télécharge sur code.visualstudio.com. On y ajoute deux extensions (menu Affichage / Extensions) :
- PHP Intelephense : la complétion, la navigation dans le code (y compris celui de [Laravel], dans le dossier [vendor]), le signalement des erreurs ;
- Laravel (l'extension officielle) : la coloration syntaxique des vues [Blade], la complétion des noms de routes, de vues, de clés de configuration et de traduction.
L'extension PHP Debug permet d'exécuter le code pas à pas, avec le débogueur [Xdebug] (une extension de [PHP], à installer à part : xdebug.org).
On ouvre le dossier [exemples], ou le dossier de l'étude de cas (menu Fichier / Ouvrir le dossier). Le terminal intégré (menu Terminal / Nouveau terminal) permet de lancer les applications sans quitter l'éditeur.
13.4. Installation de MySQL avec Laragon
[Laragon] installe sous [Windows] un serveur [MySQL] prêt à l'emploi, avec l'outil d'administration [HeidiSQL]. Après installation :
- le bouton Démarrer tout lance le serveur [MySQL], sur le port 3306 ;
- l'utilisateur [root] n'a pas de mot de passe : ce sont les valeurs des fichiers [.env] de l'exemple 28 et de l'étude de cas ([DB_USERNAME=root], [DB_PASSWORD=]) ;
- le bouton Base de données ouvre [HeidiSQL], où le menu Fichier / Exécuter un fichier SQL exécute les scripts [dbpersonnes.sql] (exemple 28) et [dbrdvmedecins2.sql] (étude de cas).
Sous [Linux] ou [macOS], on installera [MySQL] ou [MariaDB] avec le gestionnaire de paquets du système, et l'on exécutera les scripts avec le client en ligne de commande [mysql]. Le pilote [pdo_mysql] fonctionne avec les deux, sans aucun réglage. Sous [Linux], le compte [root] de [MariaDB] est souvent configuré pour ne se connecter que par le compte système [root] ([sudo mysql]) : on crée alors un utilisateur pour les applications, et on l'indique dans leur fichier [.env] :
13.5. Installation de curl
[curl] est livré avec [Windows] 10 et 11, [macOS] et la plupart des distributions [Linux]. Sous [PowerShell], il faut taper [curl.exe] et non [curl] : dans les anciennes versions de [PowerShell], [curl] est un alias d'une autre commande ([Invoke-WebRequest]), dont les options sont différentes. Dans l'invite de commandes de [Windows] ([cmd]), les guillemets d'une chaîne JSON s'écrivent [\"] (exemple 11), et une URL qui contient des [&] doit être entourée de guillemets doubles.