Zoeken…
autoloading
Voor bibliotheken die autoload-informatie opgeven, genereert Composer een vendor / autoload.php-bestand. U kunt dit bestand eenvoudig opnemen en u krijgt gratis autoloading.
require __DIR__ . '/vendor/autoload.php';
Dit maakt het heel gemakkelijk om code van derden te gebruiken. Bijvoorbeeld: als uw project afhankelijk is van Monolog, kunt u er gewoon klassen uit gaan gebruiken en worden deze automatisch geladen.
$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));
$log->addWarning('Foo');
U kunt zelfs uw eigen code toevoegen aan de autoloader door een autoload
veld toe te voegen aan composer.json
{
"autoload": {
"psr-4": {"Acme\\": "src/"}
}
}
Componist registreert een PSR-4-autoloader voor de Acme-naamruimte.
U definieert een toewijzing van naamruimten naar mappen. De src
directory bevindt zich in uw projectwortel, op hetzelfde niveau als de leveranciersmap. Een voorbeeld van een bestandsnaam is src/Foo.php
met de klasse Acme\Foo
.
Nadat u het veld autoload hebt toegevoegd, moet u dump-autoload
opnieuw uitvoeren om het bestand vendor/autoload.php
opnieuw te genereren.
Als u dat bestand opneemt, wordt ook de autoloader-instantie geretourneerd, zodat u de retourwaarde van de include-aanroep in een variabele kunt opslaan en meer naamruimten kunt toevoegen. Dit kan bijvoorbeeld handig zijn voor het automatisch laden van klassen in een testpakket.
$loader = require __DIR__ . '/vendor/autoload.php';
$loader->add('Acme\\Test\\', __DIR__);
Naast PSR-4 autoloading, ondersteunt Composer ook PSR-0, classmap en autoloading van bestanden.