Ответ 1
В любой версии до 2, Controller
является базовым классом контроллера (который вы расширите с помощью MY_Controller). В версии 2 и выше вам нужно расширить CI_Controller
, так как это новое имя для базового класса контроллера.
Для всех, кто сталкивался с этим, CI2 переместил несколько файлов классов из /libraries
в новый каталог /core
. Если вы посмотрите в system/core
, каждый класс, который вы видите там, теперь использует префикс CI_
- включая Model (теперь CI_Model), Input, Loader, Lang и многие другие. Если вам необходимо перегрузить или расширить эти библиотеки, теперь они должны быть в каталоге application/core
. Вы по-прежнему будете использовать префикс MY_
для их расширения или того, что вы установили в своем $config['subclass_prefix']
.
С выпуском версии 2 CI разбился на две ветки: Core и Reactor. Не путайте - они оба CodeIgniter, но любая ссылка на "Reactor" - это текущая версия сообщества, которая предлагается в качестве основной загрузки на веб-сайте, а Core - это более старая версия EllisLabs с меньшими возможностями. На веб-сайте CI:
"Проще говоря, Reactor = CodeIgniter".
Вы можете узнать больше об изменениях ветвей здесь.
Модернизация с 1.7.2 до 2.X проста. Как всегда, убедитесь, что прочитали журнал изменений и инструкции по обновлению при обновлении до новой версии.
Что касается закрывающего тега: он не является обязательным, но вы должны избегать его, когда это возможно, поскольку оно может вводить пробел в script (что-либо после закрывающего тега), что может испортить заголовки и появляться в вашем вывод. Как вы знаете, руководство пользователя рекомендует вам не использовать его.