Skip to content

2. Installation d'un environnement de travail

Les scripts ont été écrits et testés dans l'environnement suivant :

  • un environnement serveur web [Apache] / SGBD [MySQL] / [PHP] 8.5 appelé [Laragon] ;
  • l'éditeur [Visual Studio Code] et son extension [PHP Intelephense] ;
  • le gestionnaire de dépendances [Composer], fourni avec [Laragon], qui installe les bibliothèques PHP utilisées par le cours .

D'autres outils (le serveur de courrier [Mailpit], le SGBD [PostgreSQL], le serveur [Redis]) ne sont utiles qu'à certains chapitres : leur installation est décrite dans les chapitres concernés.

2.1. Installation de Laragon

[Laragon] est un paquetage pour [Windows] réunissant plusieurs logiciels :

  • un serveur web [Apache]. Nous l'utiliserons pour l'écriture de scripts web en PHP ;
  • le SGBD [MySQL] ([PostgreSQL] peut lui être ajouté, cf. le chapitre de la version 6) ;
  • le langage de script PHP, en plusieurs versions, dont la 8.5 ;
  • un serveur [Redis] implémentant un cache pour des applications web ;
  • l'outil [Composer] ;
  • un terminal de commandes dans lequel tous ces outils sont directement utilisables .

[Laragon] se télécharge à l'adresse https://laragon.org/download/. Son utilisation est gratuite, avec toutes ses fonctionnalités ; une fenêtre invite de temps en temps à acheter une licence pour soutenir son développement, ce qui est facultatif. L'installation ne présente pas de difficulté : on accepte les choix par défaut. [Laragon] s'installe alors dans le dossier [C:\laragon], que nous appellerons <laragon> dans la suite :

1
2
3
4
5
6
C:\laragon
├── bin\        les logiciels : apache, mysql, php, redis, composer…
├── data\       les données des SGBD
├── etc\        des fichiers de configuration
├── tmp\
└── www\        la racine du serveur web Apache : http://localhost

Le lancement de [Laragon] affiche sa fenêtre principale :

  • le bouton [Démarrer tout] (Start All) lance le serveur web [Apache] et le SGBD [MySQL]. La fenêtre indique alors, pour chacun d'eux, qu'il est actif et sur quel port il écoute : 80 pour [Apache], 3306 pour [MySQL] ;
  • le bouton [Web] affiche la page [http://localhost], qui correspond au dossier [<laragon>/www] ;
  • le bouton [Base de données] (Database) lance un outil d'administration des bases de données ([HeidiSQL], fourni avec [Laragon]) ;
  • le bouton [Terminal] ouvre un terminal de commandes dans lequel [php], [composer], [mysql]… sont directement utilisables ;
  • le bouton [Racine] (Root) ouvre l'explorateur [Windows] sur le dossier [<laragon>/www]. C'est là qu'il faut placer toutes les applications web gérées par le serveur [Apache] de [Laragon] ;
  • un clic droit dans la fenêtre (ou sur l'icône de [Laragon] dans la barre des tâches) ouvre le menu de [Laragon], qui donne accès à la configuration de chaque logiciel .

2.1.1. Choisir PHP 8.5

[Laragon] peut contenir plusieurs versions de PHP. La version utilisée se choisit dans son menu, rubrique [PHP > Version]. Choisissez la version 8.5 (la plus récente de la série 8.5). Elle est alors utilisée à la fois par le serveur [Apache] et par la commande [php] du terminal.

Pour que la commande [php] soit aussi utilisable dans les terminaux de [VS Code], il faut que le dossier de PHP soit dans le PATH de [Windows]. [Laragon] s'en charge : menu [Outils > Path > Ajouter Laragon au Path] (Tools > Path > Add Laragon to Path). Ouvrez ensuite un nouveau terminal (les terminaux déjà ouverts ne voient pas la modification) et tapez :

> php -v

La commande doit afficher la version de PHP, 8.5.x.

2.1.2. Configurer PHP pour l'apprentissage

PHP est configuré par un fichier texte [php.ini], accessible par le menu de [Laragon], rubrique [PHP > php.ini]. Pendant l'apprentissage, il faut que PHP signale toutes les erreurs, tous les avertissements et toutes les dépréciations. Vérifiez que le fichier contient les lignes suivantes (ou modifiez-les) :

1
2
3
4
5
6
error_reporting = E_ALL
display_errors = On
display_startup_errors = On
log_errors = On
error_log = C:/laragon/tmp/php_errors.log
date.timezone = Europe/Paris
  • [error_reporting = E_ALL] : PHP signale tout, y compris les messages [Deprecated] qui annoncent les fonctionnalités appelées à disparaître. Une configuration de production utilise souvent [E_ALL & ~E_DEPRECATED], qui les cache : ce n'est pas ce que nous voulons ici ;
  • [display_errors = On] : les messages sont affichés dans le résultat du script (le terminal, ou la page web) ;
  • [log_errors = On] : les messages sont aussi écrits dans le journal des erreurs ;
  • [error_log] : le fichier de ce journal. Sans cette ligne, un script console écrit son journal dans le terminal lui-même, et chaque message y apparaîtrait deux fois (une fois précédé de [PHP], une fois sans) ;
  • [date.timezone] : le fuseau horaire utilisé par les fonctions de date .

Le cours utilise aussi plusieurs extensions de PHP. Elles s'activent dans le menu de [Laragon], rubrique [PHP > Extensions], ou dans le fichier [php.ini] par des lignes de la forme [extension=nom]. Les extensions utilisées sont : [curl], [mbstring], [openssl], [pdo_mysql], [pdo_pgsql], [fileinfo] et [zip] (cette dernière sert à [Composer] pour décompresser les bibliothèques qu'il télécharge). Après une modification du fichier [php.ini], il faut relancer [Apache] (bouton [Recharger] de [Laragon]) ; les scripts console, eux, relisent le fichier [php.ini] à chaque exécution.

On peut vérifier la configuration dans un terminal avec la commande [php --ini] (le fichier [php.ini] utilisé) et [php -m] (la liste des extensions chargées). Le premier script du chapitre suivant, [phpinfo.php], affiche toute la configuration.

2.2. Installation de VS Code

[Visual Studio Code] est un éditeur gratuit de Microsoft, téléchargeable à l'adresse https://code.visualstudio.com/. Il remplace ici l'IDE [NetBeans] utilisé par le cours PHP 7.

Une fois [VS Code] installé, on lui ajoute le support du langage PHP : dans le panneau [Extensions] (Ctrl+Maj+X), on recherche et on installe l'extension [PHP Intelephense]. Elle apporte :

  • la complétion du code : les fonctions de PHP, les classes, leurs méthodes et leurs attributs sont proposés pendant la frappe ;
  • l'affichage de la documentation d'une fonction ou d'une méthode au survol de son nom ;
  • la détection des erreurs pendant la frappe (variable non définie, mauvais type, méthode inexistante…), soulignées dans le code et rassemblées dans le panneau [Problèmes] ;
  • la navigation dans le code : un Ctrl+clic sur un nom de classe ou de fonction ouvre sa définition, y compris dans les bibliothèques du dossier [vendor] .

[Intelephense] doit connaître la version de PHP utilisée pour connaître ses nouveautés : dans les paramètres de [VS Code] (Ctrl+virgule), rechercher « intelephense php version » et indiquer 8.5.

On travaille ensuite en ouvrant le dossier des codes du cours dans [VS Code] (menu [Fichier > Ouvrir le dossier]). Un terminal s'ouvre par le menu [Terminal > Nouveau terminal] : il est positionné sur le dossier ouvert, et l'on y tape les commandes [php], [composer], [curl]… Pour exécuter un script console, on se place dans son dossier (commande [cd]) et on tape [php nom-du-script.php].

2.3. Installation des codes du cours

Les codes du cours forment un dossier [php8-oct-2026], téléchargeable au début de ce document. On le place dans le dossier [<laragon>/www] :

1
2
3
4
5
6
C:\laragon\www
└── php8-oct-2026
    ├── composer.json
    ├── phpunit.xml
    ├── scripts-console
    └── scripts-web

Ses scripts web sont alors accessibles à l'URL [http://localhost/php8-oct-2026/...]. Par exemple, une fois [Apache] lancé, l'URL [http://localhost/php8-oct-2026/composer.json] doit afficher le fichier [composer.json].

2.4. Installation des bibliothèques avec Composer

Comme la plupart des langages, PHP dispose d'un gestionnaire de dépendances, [Composer], qui télécharge les bibliothèques dont un projet a besoin depuis le dépôt [packagist.org]. Les bibliothèques utilisées par le cours sont déclarées dans le fichier [composer.json] du dossier [php8-oct-2026] :

{
    "name": "stahe/php8-oct-2026",
    "description": "Codes du cours « Introduction au langage PHP 8 par l'exemple » (octobre 2026)",
    "type": "project",
    "license": "MIT",
    "require": {
        "php": ">=8.5",
        "symfony/http-foundation": "^8.0",
        "symfony/http-client": "^8.0",
        "symfony/mailer": "^8.0",
        "symfony/mime": "^8.0",
        "predis/predis": "^3.0",
        "zbateson/mail-mime-parser": "^3.0"
    },
    "require-dev": {
        "phpunit/phpunit": "^12.0"
    },
    "config": {
        "sort-packages": true
    }
}
  • ligne 6 : les bibliothèques nécessaires à l'exécution des scripts. Chacune est désignée par un nom de la forme [éditeur/bibliothèque] et une contrainte de version : [^8.0] signifie « toute version 8.x à partir de la 8.0 ». Leur rôle est présenté dans les chapitres qui les utilisent ;
  • ligne 7 : le projet exige PHP 8.5 ou plus récent ;
  • ligne 15 : les bibliothèques utiles au seul développement, ici le framework de tests [PHPUnit] .

Pour installer ces bibliothèques, on ouvre un terminal dans le dossier [php8-oct-2026] (le terminal de [Laragon], ou celui de [VS Code]) et on tape :

> composer install

[Composer] crée alors un dossier [vendor] contenant les bibliothèques et leurs propres dépendances, ainsi qu'un fichier [vendor/autoload.php]. Un script qui veut utiliser ces bibliothèques n'a qu'à inclure ce fichier, qui charge automatiquement leurs classes à leur première utilisation. Les scripts du cours le font avec un chemin relatif à leur propre dossier, par exemple :

require_once __DIR__ . '/../../vendor/autoload.php';

La constante [__DIR__] désigne le dossier du script qui l'utilise : le chemin ne dépend donc pas du dossier dans lequel on exécute le script, ni de l'endroit où l'on a placé le dossier [php8-oct-2026].

On vérifie l'installation en affichant la version de [PHPUnit] :

> php vendor/bin/phpunit --version
PHPUnit 12.5.37 by Sebastian Bergmann and contributors.

Maintenant que l'environnement de travail a été installé, nous pouvons aborder les bases de PHP.