サーチ…


オートローディング

自動ロード情報を指定するライブラリの場合、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