Sök…


självladdande

För bibliotek som specificerar autoload-information genererar Composer en leverantör / autoload.php-fil. Du kan helt enkelt inkludera den här filen så får du autoladning gratis.

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

Detta gör det riktigt enkelt att använda kod från tredje part. Till exempel: Om ditt projekt är beroende av Monolog kan du bara börja använda klasser från det och de laddas automatiskt.

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

Du kan till och med lägga till din egen kod till autoloader genom att lägga till ett autoload fält till composer.json

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

Kompositör registrerar en PSR-4-autoloader för Acme-namnområdet.

Du definierar en kartläggning från namnområden till kataloger. src katalogen finns i ditt projektrot, på samma nivå som leverantörskatalogen är. Ett exempel på filnamn skulle vara src/Foo.php innehåller en Acme\Foo klass.

När du har lagt till autoload-fältet måste du köra dump-autoload igen för att generera vendor/autoload.php filen.

Att inkludera den filen kommer också att returnera autoloader-instansen, så att du kan lagra returvärdet för inkluderingssamtalet i en variabel och lägga till fler namnutrymmen. Detta kan till exempel vara användbart för autoladning av klasser i en testsvit.

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

Förutom PSR-4 autoloading stöder Composer också PSR-0, klasskarta och autoladning av filer.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow