Laravel4Composerの導入により複雑になったように見える、クラスローディングですが、個別に理解すれば難しくありません。Composerのクラスローディング2つあります。PSR-0準拠どんなものでも重複しなければOK(生成したクラスマップによるローディング)これ以外にもファイル指定による読み込みもありますが、クラス名による読み込みではなく、リクエストのたび、毎回読み込むものです。Laravelのクラスローディング指定されたディレクトリーを名前空間のトップとして扱う、PSR-0風なローディング予めクラスを検索するディレクトリーを配列で指定します。そのディレクトリーを名前空間のトップとして順番に探していく方法です。"Apple"クラス(トップの名前空間に位置づけられている)は、登録されているディレクトリー中でApple.phpが探されます。"Fruit\Apple"クラスは登録されているディレクトリー下のサブディレクトリー"Fruit"の中の、Apple.phpが探されます。"Sweets\Apple_Candy"クラスは、登録されているディレクトリーで、"Sweets/Apple/Candy.php"が探されます。ComposerとLaravelのオートローディングの違いComposerではコマンドでオートローディング対象マップファイルを生成し、実際のオートロードはそのマップファイルをもとに行います。新しいPSR-0準拠のベンダー/ディレクトリーを登録するか、PSR-0ではないクラスファイル/クラスファイルが含まれるディレクトリーを変更/追加した場合、コマンドでマップファイルを再生成します。dump-autoload)この方法は利便性にかけますが、速度は早いです。Laravelのオートローディングは指定先の複数ディレクトリー下を探します。クラスのロード先として登録されているディレクトリーが多ければ多いほどオーバーヘッドがかかります。この方法は便利ですが、速度は遅いです。Composerのオートローダーによるチェックが、Laravelより先に行われます。LaravelのPSR-0風ローディング規約です。Laravelのローディング規約は完全にComposerの何でもOK規約に含まれます。そのため、Laravelのコーディング規約として指定されているディレクトリーはComposerのクラスマップによるローディングの読み込み先としても指定されています。dump-autoloadコマンドでマップファイルを作成することができます。クラスの追加やクラスのパス、クラス名の変更があっても、いちいちComposerのコマンドを実行する必要が無くなります。Laravelの規約に基づいて名前空間とクラス名から、対応するディレクトリーに保存しておけば、Laravelのオートローダーがローディングしてくれるからです。これで便利さと、スピードが両立できます。オートローディングが遅いという声も無くなるでしょう。