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.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow