CodeIgniter User Guide Version 2.0.0


Обновление из 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().

Шаг 8: Изучите руководство пользователя