Обновление с 1.7.2 до 2.0.0
Перед началом обновления Вам необходимо перевести сайт в "offline" режим путем замены index.php файла на статический.
Шаг 1: Обновите файлы CodeIgniter
Замените вес файлы и папки в каталоге “system”.
Примечание
Если в этих папках есть Ваши файлы, то сначала следует сделать их копии.
Шаг 2: Установите get_dir_file_info() где необходимо
Версия 2.0.0 вносит назад не возвращаемое изменение для get_dir_file_info() в File Helper. Назад не возвращаемые изменения очень редки в CodeIgniter, но это изменение мы считаем точно гарантирует возможность легко создать серьезное серверное исполнение вопросов. Если необходима рекурсивность там где Вы используете эту вспомогательную функцию, измените как в примере, второй параметр, $top_level_only на FALSE:
get_dir_file_info('/path/to/directory', FALSE);
Шаг 3: Преобразуйте Plugins в Helpers
2.0.0 избавляет от “Plugin” системы, т.к. их функциональность была определена как Хелперы (Helpers-Помощники), но non-extensible. Вам нужно будет переименовать файлы плагинов из filename_pi.php в filename_helper.php, переместите их в папку хелперы, и измените все как в примере:
$this->load->plugin('foo');
на
$this->load->helper('foo');
Шаг 4: Обновите сохраненные зашифрованные данные
Примечание
Если Ваше приложение не использует библиотеку Encrypt, не сохраняет данные в зашифрованном виде навсегда, или же является средой не используемой Mcrypt, Вы можете пропустить этот шаг.
Библиотека Encrypt имеет множество изменений, некоторые для сильнейшего шифрования, а некоторые для исполнения, это явилось неизбежным следствием отсутствия возможности расшифровать зашифрованные данные старой версией этой библиотеки. Чтобы помочь с переходом, был добавлен новый метод, encode_from_legacy() который будет расшифровывать данные используя оригинальный алгоритм и вернет перекодированные данные для текущего метода. Это обеспечит Вашему приложению легкую замену старых данных на новые, как на лету так и заранее подготовленные.
Пожалуйста ознакомтесь с документацией как использовать этот метод для библиотеки Encrypt.
Шаг 5: Удалите вызовы загрузки совместимого хелпера.
Совместимый хелпер был удален из ядра CodeIgniter. Все методы должны быть переписаны на родной PHP.
Шаг 6: Обновите класс расширений
Все классы ядра теперь имеют префикс CI_. Приведите Модели (Models) и Контроллеры (Controllers) к виду CI_Model and CI_Controller, соответственно.
Шаг 7: Обновите вызов родительского конструктора
Все родные классы CodeIgniter теперь используют PHP 5 __construct() конструкцию. Пожалуйста обновите расширенные библиотеки путем parent::__construct().
Примечания обновлений
Пожалуйста, ознакомтесь с 2.0.0 Журналом изменеий (Change Log) для более подробной информации, но тут предоставлены некоторые из самых важных изменений которые повлияют на Ваш код:
- Scaffolding было удалено.
- CAPTCHA плагин теперь хелпер.
- Плагин JavaScript календаря был удален.
- system/cache и system/logs каталоги теперь в папке application.
- Класс валидации (Validation) был удален. Пожалуйса, ознакомтесь с Form Validation библиотекой
- “default” является зарезервированным именем.
- xss_clean() функция была перемещена в Security Class.
- do_xss_clean() возвращает FALSE если загружаемый файл не прошел XSS проверку.
- Для Session Class необходимо использование зашифрованного ключа заданного в файле конфигураций.
- Список устаревших функций Active Record которые были удалены: orwhere, orlike, groupby, orhaving, orderby, getwhere.
- _drop_database() and _create_database() функции были удалены из драйвера утилит БД.
- dohash() функция в Security helper была переименована в do_hash() согласно согласований для имен.