Recherche…


Chargement automatique

Pour les bibliothèques qui spécifient des informations de chargement automatique, Composer génère un fichier vendor / autoload.php. Vous pouvez simplement inclure ce fichier et vous obtiendrez un chargement automatique gratuit.

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

Cela facilite grandement l'utilisation du code tiers. Par exemple: Si votre projet dépend de Monolog, vous pouvez simplement commencer à utiliser des classes et elles seront automatiquement chargées.

$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));
$log->addWarning('Foo');

Vous pouvez même ajouter votre propre code à l'autochargeur en ajoutant un champ de autoload à composer.json

{
    "autoload": {
        "psr-4": {"Acme\\": "src/"}
    }
}

Composer enregistre un chargeur automatique PSR-4 pour l'espace de noms Acme.

Vous définissez une correspondance entre les espaces de noms et les répertoires. Le répertoire src serait dans la racine de votre projet, au même niveau que le répertoire du fournisseur. Un exemple de nom de fichier serait src/Foo.php contenant une classe Acme\Foo .

Après avoir ajouté le champ autoload, vous devez relancer dump-autoload pour recréer le fichier vendor/autoload.php .

L'inclusion de ce fichier renverra également l'instance du chargeur automatique, de sorte que vous pouvez stocker la valeur de retour de l'appel d'inclusion dans une variable et ajouter d'autres espaces de noms. Cela peut être utile pour charger automatiquement des classes dans une suite de tests, par exemple.

$loader = require __DIR__ . '/vendor/autoload.php';
$loader->add('Acme\\Test\\', __DIR__);

En plus du chargement automatique du PSR-4, Composer prend également en charge le chargement automatique des fichiers PSR-0, classmap et fichiers.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow