Контент


Kohana 3.0.7

Очередной релиз третьей ветки, и очередной список исправлений и дополнений.

    Userguide

  • Стартовая страница модуля Userguide теперь может быть установлена в параметре default_page конфига. Напомню, по умолчанию используется ‘about.kohana’.
  • Модульность Ko3 иногда играла злую шутку с пользователями API от Userguide. Просмотр модуля, имеющего реализации для другого неподключенного модуля (например, драйвер ORM или Jelly), заканчивался выбросом исключения. Теперь же этот класс будет сгенерирован налету. Интересное решение, добавлен еще один autoload-класс Kodoc_Missing.
  • Validation

  • В предыдущем релизе умудрились поломать работу валидатора, в тексте ошибки не подставлялось название поля.
  • При валидации можно отправлять дополнительные данные в callback‘и. Т.е. $this->callback('username', 'username_exists', array('test' => 1)) при вызове функции $this->username_exists() передаст в качестве третьего параметра (после собственно объекта Validate и имени проверяемого поля) массив array('test' => 1).
  • Вызов Validate::check(TRUE) в случае пустого массива вернет TRUE. Возможно, это положит конец бесконечным спорам, почему не проходит валидация пустого массива.
  • Request/Route

  • В объект Request добавлен метод url(array $params = NULL, $protocol = NULL), который генерирует абсолютный адрес для переданных параметров $params с учетом текущего роута. Не путайте с uri(array $params = NULL), который возвращает относительный адрес.
  • Аналогично с объектом Route. Теперь можно вызывать Route::url('default', array('controller' => 'welcome1')) и получить что-то вроде /welcome1/index. Удобнее, чем URL::site(Route::get('default')->uri(array('controller' => 'welcome1')));
  • Pagination

  • При работе с модулем Pagination можно указывать текущий номер страницы в явном виде. Напомню, что до этого номер рассчитывался на основании переданных настроек (параметры $config['current_page']['source'] и $config['current_page']['key']). Теперь сперва будет проверяться ключ $config['current_page']['page'], котором и надо передавать свое значение для страницы.
  • Добавлен новый шаблон для модуля Pagination. Он называется ‘floating‘, и представляет собой сокращенную версию шаблона ‘basic’ — он показывает не все страницы, а только $count_in ссылок в обе стороны от текущей страницы, и $count_out страниц в начале и конце. Эти параметры можно передавать в Pagination::factory(), по умолчанию они равны 5 и 3 соответственно.
  • Если в объект Pagination передана несуществующая страница, раньше просто отображалась первая. Теперь же есть возможность проверить корректность номера с помощью метода valid_page($id). Если вернется FALSE, можно предложить свое значение (например, направить на последнюю страницу), можно отправить заголовок 404 Not Found.
  • Прочее

  • Исправлены «детские» дыры (XSS) в безопасности сайта kohanaframework.com и модуля Userguide. В том же тикете было указано на открытость служебных данных SVN и GIT (на Хабре пробегали исследования сайтов на подобные уязвимости), однако на момент написания топика ничего не исправили.
  • Использование Form::image() приводило к неприятному сообщению (Notice) об отсутствующей переменной $index. Исправлено.
  • Имя конфига по умолчанию для Database было жестко прописано в коде. Теперь же можно явно указывать дефолтный конфиг, используя статическое свойство Database::$default. ORM будет использовать настройки модуля Database.
  • Исправлена работа с неассоциативными массивами в методе arr::merge(). Правда, реализовано только со второй попытки :)
  • При создании элемента SELECT (метод form::dropdown()) появилась возможность выбрать несколько значений (т.е массив) — это полезно для работы с MULTIPLE SELECT‘ами.

    Мне показались забавными комменты в данном тикете. Равно как и комментарий в новом куске кода — // This is a multi-select, god save us!

Качаем, благодарим разработчиков. :)

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Опубликовано в Kohana3.

Теги: , .


Комментарии (3)

Будьте в курсе обсуждения, подпишитесь на RSS ленту комментариев к этой записи.

  1. Максим Нагайченко пишет:

    Уже поставил! Пока полет нормальный….

    ЗЫ У тебя сегодня в 10-12 по МСК сайт ваще не грузился….

  2. biakaveron пишет:

    Ну да, этот релиз один из немногих в третьей ветке, который потом поспешно не пересобирали :)

    PS. Вполне возможно, вот планирую на выходных начать переезд к другому хостеру.

  3. alkhankhel пишет:

    Ура с пагинатором что-то решили, а то при пагинации результата, когда кол-во всех найденных записей и результат для текущей страницы вызывается одни запросом (например поиск в sphinx). Сдвиг для текущей страницы нельзя было вычислить не передав параметры общего кол-ва записей.



Можно включить подсветку кода: <code><pre lang="">...</pre></code>
Разрешены некоторые HTML теги

или используйте trackback.