Szukaj…
Automatyczne ładowanie
W przypadku bibliotek, które określają informacje o automatycznym ładowaniu, Composer generuje plik vendor / autoload.php. Możesz po prostu dołączyć ten plik, a otrzymasz automatyczne ładowanie za darmo.
require __DIR__ . '/vendor/autoload.php';
Dzięki temu korzystanie z kodu innej firmy jest naprawdę łatwe. Na przykład: jeśli twój projekt zależy od Monologa, możesz po prostu zacząć z niego korzystać i zostaną one automatycznie załadowane.
$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));
$log->addWarning('Foo');
Możesz nawet dodać własny kod do autoloadera, dodając pole autoload
do pliku composer.json
{
"autoload": {
"psr-4": {"Acme\\": "src/"}
}
}
Kompozytor zarejestruje autoloader PSR-4 dla przestrzeni nazw Acme.
Definiujesz odwzorowanie z przestrzeni nazw na katalogi. Katalog src
będzie znajdować się w katalogu głównym projektu, na tym samym poziomie, co katalog dostawcy. Przykładowa nazwa pliku to src/Foo.php
zawierająca src/Foo.php
Acme\Foo
.
Po dodaniu pola autoload musisz ponownie uruchomić dump-autoload
aby ponownie wygenerować plik vendor/autoload.php
.
Dołączenie tego pliku zwróci również instancję autoloadera, dzięki czemu można zapisać wartość zwracaną wywołania włączenia w zmiennej i dodać więcej przestrzeni nazw. Może to być przydatne na przykład do automatycznego ładowania klas w pakiecie testowym.
$loader = require __DIR__ . '/vendor/autoload.php';
$loader->add('Acme\\Test\\', __DIR__);
Oprócz automatycznego ładowania PSR-4, Composer obsługuje również PSR-0, mapowanie klas i automatyczne ładowanie plików.