Как я расширяю класс контроллера воспламенителя кода?

Взгляд cSounds.

10
задан ChronoFish 26 October 2009 в 17:57
поделиться

2 ответа

DD_Controller.php должен находиться в / system / application / libraries /

Если вы используете один и тот же CI для нескольких приложений и хотите, чтобы все они могли расширять свои контроллеры на свой собственный, тогда вы можете расширить базовый класс Controller в том же файле.

В system / libraries / Controller.php ниже класса Controller:

class Mega_Controller extends Controller {
    function Mega_Controller()
    {
        parent::Controller();
        // anything you want to do in every controller, ye shall perform here.
    }
}

Затем вы сможете сделать это в контроллерах вашего приложения:

class Home extends Mega_Controller {
    ....

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

4
ответ дан 3 December 2019 в 23:50
поделиться

Я рекомендую избегать "взлома" файлов ядра CodeIgniter. Лучше используйте его собственные возможности расширения и постарайтесь в них вписаться.

То же правило, которое я бы порекомендовал для любой библиотеки PHP / CMS. У этого правила есть несколько причин: - возможность быстрого обновления без учета тысяч заметок, где и как было взломано основные файлы; - переносимость; - возможность поделиться своим кодом - например, это будет доступно как вам, так и вашим друзьям в случае необходимости, и это поможет им поддерживать свою библиотеку в рабочем состоянии на сегодняшний день так же, как и вы.

Другими словами, это гораздо более профессиональный подход, и в будущем это будет выгодно вам благодаря удобству использования, переносимости и возможности обновления приложений.

Что касается вашего личного вопроса ...

Что касается меня, нет ничего плохого в том, чтобы создать свою собственную библиотеку со всем необходимым для расширения встроенного контроллера CodeIgniter, затем загрузить эту библиотеку в конструктор контроллера, и все готово. Единственное, что может улучшить удобство использования, - это дать вашей библиотеке короткое имя.

Таким образом, вы даже можете разделить то, что вам нужно, на разные части и поместить в отдельные библиотеки: WebFeatures AdminFeatures и т. Д.

Затем вы просто загружаете необходимые библиотеки в конструктор вашего контроллера, и все готово.

P.S. Я знаю, что предложенный способ не укладывается в «правильную» концепцию ООП, но в то же время нельзя забывать о целостности используемых библиотек.

Все вышесказанное - это всего лишь еще один взгляд на мой 7-летний опыт профессиональной веб-разработки, поэтому я надеюсь, что это будет полезно если не следить, то, по крайней мере, принять во внимание.

С уважением, Антон

4
ответ дан 3 December 2019 в 23:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: