0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

速攻でオートロードがしたいです......

Last updated at Posted at 2021-12-26

Composerを使ってオートロードする

PHPでオートロードするにはComposerが必要なので、まだインストールされてなければ
・Windowsをお使いの方はこちら
・Macをお使いの方はこちら
を参考にしてインストールを行ってください。

まずはプロジェクトのルートディレクトリにcomposer.jsonファイルを作成します。
そして以下の内容を記述します

composer.json
{
    "autoload": {
        "psr-4": {
            "App\\": "./"
        }
    }
}

PSR-4のルールに従い、現在のディレクトリ(composer.jsonを作成した階層)をトップレベルの名前空間 App\として、ルートディレクトリ配下のApp\から始まる名前空間のクラスやインターフェースをオートロードしてくれる設定です。

ターミナルでcomposer.jsonのあるディレクトリまで移動しcomposer dump-autoload コマンドを実行します。

するとvendorディレクトリが作成され、autoload.phpが生成されます。
これでvendor/autoload.php をインクルードするだけでオートロードしてくれます。
あとはuseでクラスに指定してある名前空間の完全修飾名を指定してあげれば、クラスを定義しているファイルをインクルードしなくても使えるようになります。

sample.php
<?php
require_once `vendor/autoload.php`;

use App\Sample\MyClass;
// 名前空間 App\Sample\ 配下のMyClassクラスをオートロード

##クラス以外のファイルのオートロード

また、関数を定義してあるファイルなど、クラスやインターフェース以外のファイルもオートロードしたいといった場合には

composer.json
{
    "autoload": {
        "psr-4": {
            "App\\": "./"
        },
        "files": [
            "sample/function.php"
        ]
    }
}

"files[ ]"にルートディレクトリから、オートロードしたいファイルまでのパスを記述することでオートロードすることができます。

上記のようにしてcomposer.jsonを更新した際にはターミナルでcomposer updateコマンドを実行して内容を更新してください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?