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で即時実行関数を使って名前空間を汚さない

JavaScript だとよく見るやり方なのですが、「即時実行関数を使って名前空間を汚さない」やり方って、PHP の場合はあまりやらないのでしょうか? PHPで関数を宣言すると、その名前はグローバル空 …

PHP

PHPって何ができるの?

「PHPって何ができるか?」を知るために、最小限の PHP を使った Webページが Webブラウザにどんなデータを返すのか? を見ていきます。 スポンサードリンク 目次1. この記事が前提としている …

PHPでのエラー処理・例外処理

目次1. PHPの例外クラス2. 例外クラスの使い分け3. 独自アプリ用例外クラスの作成例と利用例4. 資料 1. PHPの例外クラス PHPには以下の例外クラスが組み込まれています。 PHPの例外ク …

PHP

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

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

PHP

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

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