Laravel4でClass 'Models\User' not foundと言われた
Laravel4では新しいクラスファイルを作成した場合、プロジェクトルートにて、composer dump-autoloadを実行しなければならない。
このコマンドを実行することによって、ShopControllerの存在がプロジェクトに認識されることになる。
Generating autoload filesと表示されればOK。
正しく、ShopControllerの存在が認識されているか確認するには?
vendor/composer/autoload_classmap.phpを開いてみればわかる。
長~い配列の中に、自身で作成したShopControllerがオートロード一覧に入っていれば、OK。
見てみれば、なんとなくわかるように、ファイルとクラス名のマッピングが行われており、ファイル名は実はshop.phpでもOKだったりする。
例えば、ファイル名がyamada.phpでもコードの中でShopContorllerと書いてあれば、ShopControllerがマッピングされる。もちろん、望ましくはない。
と書いている通り、cocmposer dump-autoloadをしてなかった。
CakePHPではこういうことはなかったので、結構忘れがちなのでメモ。