CodeIgniter 1.7.1

Вышла новая версия популярного PHP-фреймворка CodeIgniter за номером 1.7.1.

Библиотеки

— Исправлена уязвимость в библиотеке Form Validation (#6068, спасибо hkk).
— В библиотеке Pagination теперь используется <strong> вместо <b>.
— При наличии в URL запрещённых символов теперь отдаётся «HTTP/1.1 400 Bad Request».
— В Typography добавлены <big>, <small>, <q> и <tt>.
— Более подробные сообщения об ошибках в библиотеке Email при использовании sendmail.
— Убрана проверка типа в методе rotate() класса Image Manipulation.
— Более подробная проверка ошибок при сохранении файлы с помощью библиотеки Image при использовании GD.
— Для совместимости с большим числом почтовых программ добавлен разделитель между multipart и текстом MIME.
— Улучшена explode_name() в библиотеке Image.

База данных

— Добавлена обработка where_in при выполнении delete().

Хелперы

— Добавлена возможность включать optgroup в form_dropdown() хелпера form.
— В хелпер HTML добавлен метод doctype().
— Добавлена возможность приведения к нижнему регистру в url_title() хелпера URL.
— Изменён тип по-умолчанию для form_button(): «submit» на «button» в хелпере form.
— redirect() позволяет делать перенаправления вне сайта.
— get_cookie() теперь пытается использовать глобальный префикс, если запрашиваемое имя не существует.

Разное

— Улучшена безопасность xss_clean() (Internet Explorer).
— В config/mimes.php добавлен тип ‘application/msexcel’ для .xls.
— Добавлен параметр конфигурации ‘proxy_ips’ для указания разрешённых reverse proxy, заголовок HTTP_X_FORWARDED_FOR можно считать надёжным в плане определения IP.
— Upload::is_allowed_filetype() более точен при работе с изображениями (#6715).

Исправленные ошибки

База данных

— ‘random’ + order_by() (#5706).
— Создание первично ключа при помощи Forge (#5731).
— Кэширование на нескольких БД (#5737).
— TRUNCATE не считался запросом, который записывает данные (#6619).
— Сложные выражения, такие как SUM() + префиксы.

Разное

— csv_from_result() использовал несуществующий метод.
— _protect_identifiers() убирал символы «|».
— Исправления в руководстве (#5998, #6093, #6259, #6339, #6432, #6521).
— Драйвер MySQLi + неуказанный порт.
— #5702: в ошибках валидации использовалось название поля вместо заголовка.
— Идентификаторы не экранировались должным образом при использовании зарезервированных символов.
— Автотипографика: экранирование тэгов <p>.
— Автотипографика: — менялся на тире внутри атрибутов тэгов.
— Автотипографика: двойные пробелы внутри атрибутов тэгов конвертировались в  .
— Typography::format_characters(). Ошибки при обработке кавычек.
— Поправлены некоторые комментарии phpDoc в соответствии с текущим кодом.
— Некоторые символы ascii в заголовках писем subject и from.
— xss_clean() съедал пробелы после валидируемого символа.
— Комментарии HTML и тэги <pre> обрабатывались Typography::auto_typography().
— Typography::auto_typography() убирала неразрывные пробелы.
— Typography: Открывающая кавычка + <p> + любой другой тэг.
— Хелпер Text: word_censor() не работал с некоторыми локалями, где слова начинаются или кончаются акцентом.
— Хелпер Text: ограничитель слов обрезал последнее слово строки.
— #6342: plural() в хелпере Inflection + слова, кончающиеся на «y».
— #6517: URI::rsegment() возвращал неверные сегменты для контроллера по-умолчанию.
— #6706: в xss_clean() использовался устаревший второй аргумент.
— В url_title() были разрешены завершающие точки в URL.
— #6669: Библиотека Email. CRLF + заголовки при использовании протокола «mail».
— #6500: URI::A_filter_uri() подавлял ошибку вместо того, чтобы её показывать.
— #6592: Метод get_dir_file_info() хелпера File неверно работал с рекурсией.
— Улучшен Typography::auto_typography().

Навигация по записям