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

Шаг 8: Переместите любые расширения ядра в application/core

Любые расширения классов ядра (т.е. MY_Controller.php) в application/libraries папке должны быть перемещены в application/core каталог.

Шаг 9: Обновите руководство пользователя

Пожалуйста, также замените локальную копию руководства пользователя на новую версию, включая файлы изображений.

Примечания обновлений

Пожалуйста, ознакомтесь с 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() согласно согласований для имен.

Папка config

Следующие файлы были изменены:

  • config.php
  • database.php
  • mimes.php
  • routes.php
  • user_agents.php

Следующие файлы были добавлены:

  • foreign_chars.php
  • profiler.php