Сегодня 18 декабря, среда ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7277
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
Заметки разработчика
Заметки разработчика
Голосов: 1
Адрес блога: http://dev-mark.blogspot.com/
Добавлен: 2010-12-01 12:46:23
 

Kohana 3.1: Руководство по обновлению и миграции

2011-02-08 22:10:00 (читать в оригинале)

Изменения в классе Request

Класс Request был разделён на два класс Request и Response. Для установки ответа вы использовали:

$this->request->response = 'foo';

Оно было изменено на:

$this->response->body('foo');

Некоторые свойста существовавшие в классе Request были преобразованы в методы класса:

Request::$controller -> Request::controller()
Request::$action -> Request::action()
Request::$directory -> Request::directory()
Request::$uri -> Request::uri()

Request::instance() был заменен на Request::current() и Request::initial(). Обычно вы будете использовать Request::current(), но если вы уверены что хотите оригинальный запрос (когда запущен HMVC), используйте Request::initial()


Изменения в классе Validation

Класс проверки был улучшен для включения поддержки "контекста", из-за этого изменился API. Кроме того класс был разделён: ядро логики проверки теперь отделено от встроенных правил проверки. Новый класс ядра называется Validation, а правила расположены в классе Valid.


Проверка контекста

Класс проверки теперь содержит поддержку "контекста". Это позволило объединить методы rule() и callback(), и в теперь это просто метод rule() который может использоваться в обоих случаях.

Старый вариант использования:

rule('password', 'matches', array('repeat_password'))

Новый вариант использования:

rule('password', 'matches', array(':validation', 'password', 'repeat_password'))

Третий параметр содержит все параметры которые должны пройти проверку правилом. Если взглянуть на Valid::matches(), то увидим:

public static function matches($array, $field, $match)

:validation первый параметр, 'password' - второй (поле которое мы хотим проверить) и 'repeat_password' это третье (которое мы хотим сравнить)

:validation это специальная переменная "контекста" которая указывает классу Validation о замене текущего класса проверки. Таким образом правила matches() не отличаются от callback() в работе, но более мощные. Есть и другие контекстные переменные:

:validation - Объект проверки

:field - Имя поля (rule('username', 'min_length', array(':field', 4)))

:value - Значение поля

Можно использовать любую php функцию, если она возвращает логическое значение.


Куки salt

Класс Cookie вызывает исключение, если salt не установлена, по умолчанию salt не установлена. Вы должны убедиться, что установили salt в файле инициализации (bootstrap.php):

Cookie::$salt = 'foobar';

Или определить расширение класса Cookie в вашем приложении:

class Cookie extends Kohana_Cookie
{
    public static $salt = 'foobar';
}

Изменение конструктора контроллера

Если по какой-то причине вы хотите изменить свой конструктор контроллера, он изменился на:

public function __construct(Request $request, Response $response)

Изменения index.php и bootstrap.php

Основным изменением стало удаление запроса из bootstrap.php и перенос его в index.php. Это позволит использовать один файл инициализации для выполнения тестирования. Причина изменения в том, что инициализации выполняет только установку среды, она не должна запускать её.


Обработка 404

Теперь Kohana имеет встроенную поддержку исключения для 404 и других кодов статуса HTTP. Если вы использовали ReflectionException для обнаружения 404, то сейчас должны использовать Http_Exception_404. Подробности обработка ошибок



Тэги: guide, kohana, migrate

 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по количеству голосов (152) в категории «Истории»


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.