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().

    Обновляемся
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 52

      +2
      ура!
        +1
        Большое спасибо за сообщение и список изменений.
          0
          Большое спасибо, обновляюсь.
            +1
            >В библиотеке Pagination теперь используется вместо
              +1
              >В библиотеке Pagination теперь используется strong вместо b
              зачем???
                +1
                тег strong рекомендует использовать W3C. Считалось, что при индексации гуглом, есть определенные предпочтения. strong предпочтительнее b, em лучше чем i. Однако, в последних интервью Мэтт Катс говорил о том, что для гугла разница не имеет никакого значения, и оба тэги учитываются одинаково. Ознакомиться можно в его блоге www.mattcutts.com/blog/
                  +3
                  Сколько уже можно-то?!

                  Во-первых, W3C не рекомендует использовать тег <strong> вместо <b>, во-вторых, W3C не рекомендует использовать тег <em> вместо <i>.
                  W3C рекомендует использовать их с учетом их семантической значимости! Например, если Вы желаете сделать акцент на слове или фразе, которая должна быть прочитана с паузой, большей значимостью, используйте для выделения тег <strong>. Если Вы желаете усилить это значение в еще большей степени, используйте тег <em>.

                  Но остаются такие моменты, как типографские правила, как, например, такое — принято названия кораблей выделять курсивом (не обязательно имеются в виду правила русской типографики, но W3C не в Москве расположен), но если мы не желаем делать на названии корабля акцентирующее внимание, то выделяйте его просто тегом <i> (например, корабль Титаник). А жирный текст выделяйте тегом <b>.
                    +1
                    Спокойнее, Ипполит :) Зачем столько агрессии, приведите лучше источники где можно добыть дополнительной инфы. Мы тут не холиварим, я лично за здравый смысл в обсуждении вопроса. Цель не доказать, что кто-то прав или не прав, а найти практический смысл применения тегов.
                      –1
                      Прально. А в чём смысл был выделять текущую страницу тегом <b>? Это же тег, отвечающий за визуальное оформление. А что если мне надо текущую страницу бордером отметить, а не жирным? Вот поэтому, я считаю, правильно поставили <strong> вместо <b>. Потому что в этом больше смысла, т.е. семантики. Можно было ещё как-то типа <span class="current">...</span >
                        +1
                        с точки зрения css что <b> что <strong> теги одного типа и оформить их можно как угодно. и ни тот ни другой в паджинаторе нафиг не нужны (если уж смотреть с точки зрения семантики то <li class='active'> куда более подходит на роль выделения страницы)
                          0
                          >с точки зрения css что что теги одного типа и оформить их можно как угодно
                          Правильно. Но cr0t сказал «А жирный текст выделяйте тегом <b>». С этим я в корне не согласен, и вообще, и в контексте пейджера.

                          >если уж смотреть с точки зрения семантики то <li class='active'> куда более подходит на роль выделения страницы
                          Согласен.
                            0
                            Эх…
                0
                э, что-то заметно пошла стагнация, багфиксы какие-то и ничего глобального, понимаю конечно, что и цифра соответствующая, но больно долго всё фиксется. Да и видно, что Рик Эллис как-то отошёл от детища, по логам в SVN видна больше рука Дэрика :)
                  +2
                  Давненько видел видео, где Эллис «лабал» блюз на гитаре. Молодец мужик.
                  +2
                  Улучшена безопасность xss_clean() (Internet Explorer)

                  это оччень карашо, просто оччень карашо 8)
                    –2
                    Отлично, как-раз думал чего-нить заламзать на этом фреймворке…
                      –1
                      Можно не самому заламзать, а пощупать на примере MaxsiteCMS ( max-3000.com/ ) ;)
                        –1
                        Спасибо, возможно посмотрю, хотя скорее всего наверно попробую сам
                      –2
                      Пожалуйста, подкиньте кармы для публикации поста в блоге Web 3.0
                      0
                      Отлично, спасибо за новость!
                        0
                        скоро кармой будут торговать )))
                          –1
                          Вы, я так понимаю, про мой комментарий? Разве есть другой способ получения кармы для публикации статьи?
                            +2
                            Писать вменяемые и интересные комментарии, чтобы вам за них её повышали не вариант? Попрошайничать конечно проще, да.
                              –3
                              А то, что я здесь не так давно и в основном в качестве читателя, но сейчас решил запостить статью — не вариант? Или Вы считаете в этой ситуации разумнее писать комментарии и ждать повышения кармы, пока тем временем статья потеряет актуальность?
                                0
                                Пишите в «персональные блоги»
                          0
                          Если вы из песочницы, то как мне думается, что там кармы подкидывают, если нет, то действуйте проще.
                          Мне один товарищ писал, что мол подкинь кармы, вот хочу статью запостить и ссылочку на статью, почитал, кармы прибавил.
                          А таким способом, только получите минусов, хотя могу ошибаться
                            0
                            Недавно поступал аналогично. Не вижу в этом ничего зазорного, я же не денег прошу, а некую величину, нужную только для публикации статей.
                            0
                            Что-то затухает разработка, ничего нового и интересного. Я понимаю, что ЭллисЛаб выгоднее заниматься своим expression engine'ом, но все же… обидно.
                              0
                              ну не затухает конечно, просто глобальных нововведений не вносят, всё в Wiki и коммунити разбирают… :(
                                0
                                Вносят. EE2 на CI2 строится.
                              0
                              интересно, когда либу авторизации включат в дистрибутив… давно жду…
                                0
                                — При наличии в URL запрещённых символов теперь отдаётся «HTTP/1.1 400 Bad Request».

                                это какие, например?
                                  0
                                  CodeIgniter сильно ограничивает диапазон символов, которые могут быть указаны в URL, чтобы таким образом не передать в ваше приложение ничего вредоносного. URI могут содержать только следующее:

                                  * Буквенно-цифровой текст
                                  * Тильда: ~
                                  * Точка:.
                                  * Двоеточие::
                                  * Символ подчеркивания: _
                                  * Дефис: —
                                    –1
                                    бред.
                                    а адекватные причины, кроме паранойи разработчиков, так делать были?
                                      0
                                      Допустимые символы вы можете сами указать в конфигурации приложения.
                                        0
                                        уже лучше.
                                        но вопрос в силе — зачем так делать?
                                          0
                                          посмотрите на умолчальную модель обработки адресов в CI. Вида /controller/method/arg1/arg2… там другие символы и не нужны в принципе. Хотите чего-то нестандартного — правите конфиги и роуты.
                                  0
                                  А известно когда появятся новые версии Codex или Blase?
                                    0
                                    Автор Blaze вроде обещал новые релизы, смотрите в svn и в топик на форуме.
                                    0
                                    Багфиксы хорошо, но всё же надеемся. что появятся какие-то глобальности, вот чего бы хотелось уже иметь сразу в стандратном пакете:

                                    1. Библиотека для работы с авторизацией, удобная, расширяемая
                                    2. Следует из 1, некий класс для работы с правами доступа, ACL хотя бы тот же
                                    3. Генератор форм, например на паттерне декоратор, для быстрой генерации форм как из кода, так например из yaml или еще чего там, что-то типа Rapyd.com
                                    4. ORM, хотя бы за основу IgnitedRecord, доработать, сделать лучше :)
                                    5. Кэширование, всё же надо переделать стандратный класс кэширования базы данных, вплоть до проверки устаревания, роутинга и т.п.
                                    6. AJAX, уже всё же определиться, какой front-end фреймворк поддерживать, раз уж пошли по пути копирования RoR, то начать с Prototype, дальше уже посмотреть можно и на JQuery. Создать удобные классы для генерации js в back-end'е, так же использование как в РоР .rjs

                                    В общем еще море горизонтов куда расти
                                      0
                                      1-5 — добро поджаловать в кохану.
                                        0
                                        нет :) спасибо, Кохана мне не понравилась, первоначально, как отколок от CI, какая-то история мутная, после уже документации нет, коммунити слабая, поддержка совершенно мизерная и что-то нет уверенности, что проект будет поддерживаться дальше.

                                        На самом деле, все эти 1-5 я уже для себя определил, нашёл, написал и т.п. Но хочется всё же, чтобы все это было в стандартном пакете CI
                                        0
                                        Вот как раз из-за таких глобальностей, я уже начал поглядывать одним глазом на ZF (:
                                          0
                                          э, ну я бы не назвал это глобальностями :) всё это действительно уже есть, и в коммунити, и в вики лежит, просто в «ядро» не включили по умолчанию…

                                          ZF можно использовать в CI :)))
                                            0
                                            Если сайт полностью делать на ZF, то он будет очень требовательным к ресурсам.
                                            Лучше тогда использовать отдельные компоненты ZF в CI.
                                            0
                                            Много чего в вики есть, но я думаю вы в курсе =)

                                            Помните Эллис говорил, что мол новая версия EE будет написана полностью CI, так вот мне кажется, что кучу нового появится в CI как раз из EE в свое время. Короче ждем пока.
                                              0
                                              Так и будет ;)
                                                0
                                                Они еще летом хотели выпустить EE2.0 но все затянулось и ее до сих пор нету :(
                                                а так они с CI сейчас идут синхронно, ЕЕ тоже немного обновился до — «ExpressionEngine 1.6.7 Build 20090211»
                                                Номера версий думаю они не случайно выровняли и думаю скоро мы увидим сначала CodeIgniter 2.0, а потом ExpressionEngine 2.0 полностю написаным на CI ;)
                                                Надеюсь ждать осталось недолго ))
                                              –1
                                              Большое спасибо!
                                              Жаль плюсануть не могу (
                                                0
                                                Ребята, такая проблема:

                                                Вчера закончил писать проект на CI предыдущей версии.

                                                Сегодня начал следующий проект на обновленной версии и теперь проблема — невозможно поместить объект в сессию.

                                                Никто не встречат таких проблем? Если переписать старый файл библиотеки сессии, то все ок.
                                                  0
                                                  посидеть в отладчике, найти проблему, не?

                                                Only users with full accounts can post comments. Log in, please.