第56回: オートローダ — requireを書かずにクラスを自動読み込みする仕組み

章: 第6章: 実践運用と成長

クラスを使うたびに require を書き続けていませんか?オートローダを使えば、その手間が一切なくなります。

問題と解決策

クラスが増えるにつれて require_once の行数が膨れ上がり、ファイルを移動するたびにパスの修正が必要になります。読み込み漏れによる「Class not found」エラーも増えていきます。

spl_autoload_register() を使うと、クラス名から自動的にファイルパスを解決して読み込む仕組みが作れます。Composerを使えば、より標準的な PSR-4 オートローダを自動生成でき、実務のほとんどのプロジェクトではこちらが使われています。

オートローダ手段の比較

手段 特徴 推奨シーン
手動 require 明示的だが管理が大変 小規模・学習用
spl_autoload_register() PHPネイティブで柔軟 独自構成プロジェクト
Composer オートローダ(PSR-4) 業界標準・自動生成 ✅ 実務での推奨

チェックポイント: クラス名とファイル名が完全に一致していますか?UserController というクラスなら UserController.php というファイル名が PSR-4 の規約です。大文字・小文字の違いがLinuxとWindowsで挙動が異なる点にも注意しましょう。

コードサンプル


<?php
spl_autoload_register(function ($class) {
    require __DIR__ . '/src/' . $class . '.php';
});

まとめ & 次のステップ

  • spl_autoload_register() でクラス名からファイルを自動読み込みする仕組みが作れます
  • 実務ではComposerのオートローダ(PSR-4)を使うのが標準的です
  • クラス名とファイル名の一致(PSR-4規約)を守ることが重要です
  • composer dump-autoload でオートローダを再生成する習慣をつけましょう

次回は MVC入門 — モデル・ビュー・コントローラの責務分離でコードを整理する方法を学びます。

Related Articles