Suche…
Autoloading
Bei Bibliotheken, die Informationen zum automatischen Laden angeben, generiert Composer eine Vendor / autoload.php-Datei. Sie können diese Datei einfach einbinden und Sie erhalten das automatische Laden kostenlos.
require __DIR__ . '/vendor/autoload.php';
Dies macht die Verwendung von Drittanbieter-Code sehr einfach. Zum Beispiel: Wenn Ihr Projekt von Monolog abhängt, können Sie einfach damit beginnen, Klassen zu verwenden, und diese werden automatisch geladen.
$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));
$log->addWarning('Foo');
Sie können sogar Ihren eigenen Code zum Autoloader hinzufügen, indem Sie ein autoload
Feld zu composer.json
hinzufügen
{
"autoload": {
"psr-4": {"Acme\\": "src/"}
}
}
Composer registriert einen PSR-4-Autoloader für den Acme-Namespace.
Sie definieren eine Zuordnung von Namespaces zu Verzeichnissen. Das src
Verzeichnis befindet sich in Ihrem Projektstamm auf derselben Ebene wie das Herstellerverzeichnis. Ein Beispiel-Dateiname wäre src/Foo.php
, der eine Acme\Foo
Klasse enthält.
Nachdem Sie das Autoload-Feld hinzugefügt haben, müssen Sie dump-autoload
erneut ausführen, um die vendor/autoload.php
Datei erneut zu generieren.
Durch das Einschließen dieser Datei wird auch die Autoloader-Instanz zurückgegeben, sodass Sie den Rückgabewert des Include-Aufrufs in einer Variablen speichern und weitere Namespaces hinzufügen können. Dies kann beispielsweise für das automatische Laden von Klassen in einer Testsuite hilfreich sein.
$loader = require __DIR__ . '/vendor/autoload.php';
$loader->add('Acme\\Test\\', __DIR__);
Zusätzlich zum automatischen Laden von PSR-4 unterstützt Composer auch PSR-0, Classmap und das automatische Laden von Dateien.