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