PHP

Composer を使って PSR-4 オートロードしている場合、composer.json は必要なくなる

投稿日:2018年1月11日 更新日:

PHP を使った開発でよく使う Composer に関するお話しです。

例えば、composer.json に以下のように記述して開発を行ったとします。

{
    ...
    "autoload": {
        "psr-4": {"App\\": "src/"}
    },
    ...
}

その後、以下のコマンドを実行するわけですが、

$ composer dump-autoload

実はこの時、vendor/composer/autoload_psr4.php にこの内容が書き込まれています。

この場合であれば、元々以下のような内容であった autoload_psr4.php が、

<?php
// autoload_psr4.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
);

以下のように上書きされます。

<?php
// autoload_psr4.php @generated by Composer
$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
    'App\\' => array($baseDir . '/src'),
);

プログラムのエントリポイントとなる PHPファイルでは、vendor/autoload.phprequire で読み込んでオートロードしているはずですが、この中で vendor/composer/autoload_psr4.php も読み込まれているため、composer.json がなくても src/ 以下のクラスファイルは正常に読み込まれます。

このプログラムを誰かに渡す場合も、必ずしも composer.json を含めておく必要はないということになります。

関連

PHP

【PHP】Composer の使い方

2018.07.04

📂-PHP
-,

執筆者:labo


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

PHP

PHP: ob_start() 関数によるバッファリングの動作

PHP の ob_start() 関数によるバッファリングの動作について説明します。

PHP

pecl install xxxx する際は、php -v と php-config –version が一致しているか確認してから行う

pecl install xxxx する際は、php -v と php-config –version が一致しているか確認してから行うとよいという話しです。

PHP

CentOS 6.8 の PHPを 5.4 から 7 に変更する

PHPのバージョンがいまだに 5.4のままの CentOS 6.8 があったので PHP 7 に更新した;) 環境 この環境では、Nginx + FPM + PHP が動いている。 手順 まずは、関連 …

PHP

【PHP】Composer の使い方

Composer は、PHPのパッケージ管理ツールです。利用するパッケージ(ライブラリ)間の依存関係も解決してくれます。 スポンサードリンク 目次1. Composer の特徴2. 対応している PH …

Google App Engine

SendGrid でメール送信する(Google App Engine, PHP7)

Google App Engine (runtime: php72) の環境における、SendGrid を使ったメール送信方法について説明しています。