Note: This post was written while Laravel 4 was still in beta.
When you add a new class (controller) in Laravel 4 you will most probably get
ReflectionException: Class SomeClass does not exist
SomeClass is of course the name of your new class.
Why does this happen? The file/controller is there, the class is there – it works in Laravel 3 so why doesn’t it work in Laravel 4?
The reason for this is that because of the performance reasons Laravel 4 (beta) has a static list of all classes that need to be autoloaded. Since you added your new controller Laravel doesn’t know about it yet. Hopefully this will be automated in the future but right now what you need to do is open your command prompt and type this (on Windows):
If you get
'composer' is not recognized as an internal or external command error or
Could not open input file: composer then use this version (also go to your project directory where composer.phar is located):
>php composer.phar dump-autoload
Composer will (re)generate autoload files and your new controller will work.