Обновление из 1.7.2 в 2.0.0
Перед обновлением закройте ваш сайт, заменив index.php статичной версией.
Не забудьте снять резервную копию! Эксперименты желательно производить на тестовом хосте, а не на рабочем сайте.
Шаг 1: Обновите ваши файлы CodeIgniter
Замените все файлы и директории в вашей системной директории, за исключением директории application.
Примечание: Если вы имеете доработанные файлы в этих директориях, сперва сделайте их копии.
Шаг 2: Добавьте get_dir_file_info(), где необходимо
Версия 2.0.0 приняла обратную несовместимость get_dir_file_info() в помощнике File. Это крайне редкое явление в CodeIgniter, но мы считаем, что это оправдано, в связи с риском возникновения проблем с производительностью сервера. Если вы нуждаетесь в рекурсии при использовании этой функции, измените второй параметр $top_level_only в FALSE:
get_dir_file_info('/path/to/directory', FALSE);
Шаг 3: Конвертируйте ваши плагины в помощники (хелперы)
2.0.0 избавилась от "Плагинов", так как их функциональность идентична помощникам, но не расширяется.
Вы должны переименовать файлы плагинов из filename_pi.php в filename_helper.php и переместить их в директорию helpers, и заменить все вызовы:
$this->load->plugin('foo');
на
$this->load->helper('foo');
Шаг 4: Обновите хранящиеся зашифрованные данные
Примечание: Если ваше приложение не использует библиотеку Encryption, не хранит зашифрованные данные, или используется Mcrypt, вы можете пропустить этот шаг.
Библиотека Encryption имеет некоторое количество улучшений, для увеличения силы шифрования и улучшения производительности, которые привели к несовместимости со старой версией. Для того, чтобы помочь с обновлением, добавлен новый метод encode_from_legacy(), который декодирует данные от оригинального алгоритма и возвращает перекодированные строки, используя улучшенные методы. Это позволит вам просто заместить старые зашифрованные данные новыми в вашем приложении, на лету или массово.
Пожалуйста, прочтите как использовать этот метод в документации библиотеки Encryption.
Шаг 5: Удалите вызовы помощника compatibility
Помощник compatibility удален, так как все текущие методы поддерживаются соответствующей версией PHP.
Шаг 6: Обновите расширение классов
Все классы ядра теперь именуются с префиксом CI_. Обновите модели и контроллеры, чтобы они расширяли CI_Model и CI_Controller.
Шаг 7: Обновите вызовы родительского контруктора
Все родные классы CodeIgniter теперь используют PHP __construct(). Пожалуйста, обновите расширяющие библиотеки, чтобы вызывалось parent::__construct().