Расширяем класс главного контроллера

Для того, чтобы в вашем контроллере был доступен весь функционал главного контроллера, необходимо, чтобы ваш контроллер наследовал главный контроллер:

class Class-1 extends Controller {
}

Однако часто возникает потребность расширить функционал главного контроллера. Делается это очень просто.

В папке system/application/libraries создаем файл MY_Controller.php следующего содержания:

class MY_Controller extends Controller {
  function MY_Controller() {
    parent::Controller();
  }
  /* ваши методы */
}

И теперь все ваши контроллеры (при необходимости) будут наследовать не главный контроллер Controller, а вновь созданный контроллер MY_Controller.php:

class Class_1 extends MY_Controller {
  function __construct() {
    parent::MY_Controller();
  }
  /* ваши методы */
}

Теперь, зачем это делается. Например, для инициализации переменных, с которыми работают ваши контроллеры, или для размещения методов, загружающих модули сайта, ну и т.д.

Собственно и все, что я хотел пока сказать по этому поводу, может кто чего добавит.