PHP Chargement automatique avec Composer


Exemple

Alors que composer fournit un système de gestion des dépendances pour les projets PHP (par exemple, Packagist ), il peut notamment servir d'autochargeur, en spécifiant où rechercher des espaces de noms spécifiques ou inclure des fichiers de fonction génériques.

Il commence par le fichier composer.json :

{
    // ...
    "autoload": {
        "psr-4": {
            "MyVendorName\\MyProject": "src/"
        },
        "files": [
            "src/functions.php"
        ]
    },
    "autoload-dev": {
        "psr-4": {
            "MyVendorName\\MyProject\\Tests": "tests/"
        }
    }
}

Ce code de configuration garantit que toutes les classes de l'espace de noms MyVendorName\MyProject sont mappées au répertoire src et à toutes les classes de MyVendorName\MyProject\Tests dans le répertoire tests (relatif au répertoire racine). Il inclura également automatiquement le fichier functions.php .

Après l'avoir placé dans votre fichier composer.json , exécutez la composer update à composer update dans un terminal pour que le compositeur mette à jour les dépendances, le fichier de verrouillage et génère le fichier autoload.php . Lors du déploiement dans un environnement de production, vous utiliseriez le composer install --no-dev . Le fichier autoload.php se trouve dans le répertoire du vendor , qui doit être généré dans le répertoire où réside composer.json .

Vous devez require ce fichier au début du processus de configuration du cycle de vie de votre application en utilisant une ligne similaire à celle ci-dessous.

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

Une fois inclus, le fichier autoload.php se charge de charger toutes les dépendances que vous avez fournies dans votre fichier composer.json .

Quelques exemples du chemin de classe vers le mappage de répertoire:

  • MyVendorName\MyProject\Shapes\Squaresrc/Shapes/Square.php .
  • MyVendorName\MyProject\Tests\Shapes\Squaretests/Shapes/Square.php .