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.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow