Recent Comments
  • Kazi Mohammad Ekram: this was nice presentation. It inspired me to make a present...
  • Kazi Mohammad Ekram: this was nice presentation. It inspired me to make a present...
  • Lenin: Great work :)...
  • Ron: Hi Emran,Great job on this! I was testing it out and...
  • Lenin: Great work :)...
  • Ron: Hi Emran,Great job on this! I was testing it out and...
  • ariful: very helpful and nice extended class. thanks emran vai...

Changing the default controller naming convention in CodeIgniter

CodeIgniter is one of my favorite framework and I often use it for developing application quickly. Although it is very flexible in most cases, I find its naming convention to be strict. Many times I have faced this problem when my controller’s class name and a model/library’s class names are the same – a Fatal error is inevitable and I have to forcefully change the name of the conflicting class to something less desirable (say from Users to UsersModel). Today I wanted to end this problem.

So I extended the CI_Router core class and made change to the _validate_request method. Now I can name my controller classes in this fashion: UsersController and it resides on the file system as controllers/UsersController.php. If you’ve tried other established frameworks, you should notice that this naming convention is widely used. So, if you have the same need, then just download the MY_Router.php file and put it on your application/libraries folder. That’s it.

Here is how your controller would start:

< ?php

class UsersController extends Controller
{
    public function __construct()
    {
        parent::__construct();
    }
}

Read the rest of this entry »