サーチ…
オートローディング
自動ロード情報を指定するライブラリの場合、Composerはvendor / autoload.phpファイルを生成します。あなたは単にこのファイルを含めることができ、あなたは無料でオートローディングを受けるでしょう。
require __DIR__ . '/vendor/autoload.php';
これにより、サードパーティのコードを使用するのが本当に簡単になります。たとえば、プロジェクトがMonologに依存している場合は、そのクラスを使用し始めるだけで、自動的にロードされます。
$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));
$log->addWarning('Foo');
autoload
フィールドをcomposer.json
追加することで、独自のコードをオートローダーに追加することもできます
{
"autoload": {
"psr-4": {"Acme\\": "src/"}
}
}
ComposerはAcme名前空間用のPSR-4オートローダーを登録します。
名前空間からディレクトリへのマッピングを定義します。 src
ディレクトリは、プロジェクトルートにあり、ベンダーディレクトリと同じレベルにあります。サンプルのファイル名は、 Acme\Foo
クラスを含むsrc/Foo.php
です。
autoloadフィールドを追加したら、 dump-autoload
を再実行してvendor/autoload.php
ファイルを再生成する必要があります。
そのファイルをインクルードすると、autoloaderインスタンスも返されるので、インクルード呼び出しの戻り値を変数に格納して、より多くの名前空間を追加することができます。これは、例えば、テストスイート内のクラスのオートローディングに便利です。
$loader = require __DIR__ . '/vendor/autoload.php';
$loader->add('Acme\\Test\\', __DIR__);
PSR-4オートローディングに加えて、ComposerはPSR-0、クラスマップ、およびファイル自動ロードをサポートしています。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow