PHP Academy · レッスン

PSR-4オートローディング標準

PSR-4が名前空間の各セグメントをディレクトリパスに対応付ける仕組みを理解します

レッスン 3/413 ステップ

「PSR-4オートローディング標準」はCoddyKit上の無料PHP Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPHP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 PHP Academyコースには全4レッスンが含まれています。

オートロードとは

オートロードとは、クラスを初めて使用したときにPHPがそのクラスファイルを自動的に読み込む仕組みです。手動でrequireする必要はありません。

オートロード以前

オートロードがなければ、すべてのファイルの先頭に何十ものrequire_once呼び出しが必要で、壊れやすく保守も困難でした。

PSR-4のルール

PSR-4は、名前空間プレフィックスをベースディレクトリにマッピングします。プレフィックスApp\をsrc/に対応させる場合、App\Models\Userはsrc/Models/User.phpから読み込まれます。

マッピングの公式

プレフィックスを取り除き、残ったバックスラッシュをディレクトリ区切り文字に置き換え、.phpを追加します。

App\Services\Payment\Stripe → src/Services/Payment/Stripe.php

composer.json の autoload セクション

composer.jsonでPSR-4のマッピングを定義します。変更後はcomposer dump-autoloadを実行してください。

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

複数の名前空間プレフィックス

プロジェクトには複数のPSR-4マッピングを設定できます。テスト用の名前空間を分離する場合に便利です。

// composer.json
{
  "autoload":     { "psr-4": { "App\\": "src/" } },
  "autoload-dev": { "psr-4": { "Tests\\": "tests/" } }
}

クラス名とファイル名の一致

クラス名はファイル名と完全に一致しなければなりません(Linuxでは大文字と小文字が区別されます)。class UserServiceはUserService.phpに定義します。

1ファイルにつき1クラス

PSR-4では、1つのファイルにクラス、インターフェース、またはトレイトを正確に1つだけ定義する必要があります。複数の定義があるとオートロードが機能しません。

PSR-4とPSR-0の比較

PSR-0(非推奨)では、クラス名のアンダースコアをディレクトリ区切り文字として使用していました。PSR-4はより明確で、現在の標準です。

生成されるオートローダー

composer dump-autoloadの実行後、Composerはvendor/autoload.phpを生成します。エントリーポイントで一度だけ読み込んでください。

<?php
require __DIR__.'/vendor/autoload.php';

$user = new App\Models\User(); // autoloads automatically

クラスマップによるフォールバック

Composerは、PSR-4に従っていないファイル用のクラスマップも生成します。レガシーコードに便利です。

実用的なディレクトリ構成

src/
  Models/User.php        → App\Models\User
  Http/Controllers/
    UserController.php   → App\Http\Controllers\UserController

クイックチェック

プレフィックスApp\\がsrc/にマッピングされている場合、PSR-4は App\Services\Mailer をどこから探しますか?

無料で開始

AI チューターと学ぶ PHP — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
49
レッスン
195

よくある質問

「PSR-4オートローディング標準」レッスンは無料ですか?

はい。「PSR-4オートローディング標準」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、PHP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 PHP Academyコースには全4レッスンが含まれています。

「PSR-4オートローディング標準」で何を学びますか?

PSR-4が名前空間の各セグメントをディレクトリパスに対応付ける仕組みを理解します ブラウザで直接実行するハンズオンコードでPHP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

PHP Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのPHP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「PSR-4オートローディング標準」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このPHP Academyレッスンでコードを書いて実行できますか?

はい。すべてのPHP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 名前空間の宣言と利用
  2. 入れ子の名前空間とエイリアス
  3. PSR-4オートローディング標準
  4. オートローダーの登録
← PHP Academyに戻る