While upgrading one of my CodeIgniter projects from CI 2.1.x to the release/3.0 branch from Github, I found that every page returned a 404 error. After many hours of debugging, I found that the same code worked (more or less) on CI 2.7 – Simply changing the system folder to CI 3.0 caused the 404 errors. I figured at that point it was not my code, but probably a bug that had yet to be found and fixed in the CI 3.0 development version.
As it turns out, it was a case of needing to RT(Fascinating)M, as there is this incredibly helpful gem buried in the release/3.0 documents:
Step 2: Update your classes file names
Starting with CodeIgniter 3.0, all class filenames (libraries, drivers, controllers and models) must be named in a Ucfirst-like manner or in other words – they must start with a capital letter.
For example, if you have the following library file:
application/libraries/mylibrary.php
… then you’ll have to rename it to:
application/libraries/Mylibrary.php
So, long story short: when upgrading a CodeIgniter app to version 3.0 or higher, any file that contains a class must be renamed to start with a capital letter.