public/index.php
Ce fichier PHP est un script frontal (front controller) pour une application web utilisant Mezzio, un framework PHP. Il initialise l'application, configure les erreurs, charge les dépendances, définit la pipeline de middleware et les routes, puis lance l'application. Voici une explication détaillée avec des commentaires pour chaque section importante :
<?php
declare(strict_types=1);
// Active le mode strict pour les types en PHP
// Délègue les requêtes de fichiers statiques au serveur web intégré de PHP
if (PHP_SAPI === 'cli-server' && $_SERVER['SCRIPT_FILENAME'] !== __FILE__) {
return false;
}
// Si exécuté avec le serveur web intégré de PHP, les fichiers statiques sont servis directement
chdir(dirname(__DIR__));
// Change le répertoire de travail pour le répertoire parent
require 'vendor/autoload.php';
// Charge l'autoloader Composer pour gérer les dépendances
/**
* Fonction anonyme auto-invoquée qui crée son propre scope et garde l'espace de nom global propre.
*/
(function () {
error_reporting(E_ALL);
ini_set('display_errors', '1');
// Configure PHP pour afficher toutes les erreurs
/** @var \Psr\Container\ContainerInterface $container */
$container = require 'config/container.php';
// Charge le conteneur de services
/** @var \Mezzio\Application $app */
$app = $container->get(\Mezzio\Application::class);
$factory = $container->get(\Mezzio\MiddlewareFactory::class);
// Récupère l'application Mezzio et la factory de middleware du conteneur
// Exécute la configuration de la pipeline de middleware et des routes
(require 'config/pipeline.php')($app, $factory, $container);
(require 'config/routes.php')($app, $factory, $container);
$app->run();
// Lance l'application
})();
Ce script effectue plusieurs opérations clés :
-
Gestion des Fichiers Statiques : Si le script est exécuté avec le serveur web intégré de PHP, il délègue la gestion des fichiers statiques à ce serveur.
-
Changement de Répertoire : Change le répertoire de travail pour le répertoire parent de celui où se trouve le script.
-
Chargement des Dépendances : Charge l'autoloader de Composer, qui gère les dépendances du projet.
-
Configuration des Erreurs : Configure PHP pour afficher toutes les erreurs, ce qui est utile pendant le développement.
-
Initialisation de l'Application : Crée une instance de l'application Mezzio et de la factory de middleware à partir du conteneur de services.
-
Configuration de la Pipeline et des Routes : Charge et exécute les scripts de configuration pour la pipeline de middleware et les routes.
-
Lancement de l'Application : Démarre l'application Mezzio, qui commence à traiter les requêtes HTTP entrantes.
Ce fichier est le point d'entrée principal de l'application Mezzio et est crucial pour son initialisation et son fonctionnement.