21 Август 2011

Обновление Kohana с 3.1 до 3.2. Продолжение. Часть 25

Приветствую вас, уважаемый читатель!

После обновления Kohana до версии 3.2, из-за мелких изменений фреймворка возник ряд проблем в функционировании образовательной системы.

Сегодня мы их поборем.

Было выявлено три проблемы:

1. Изменился синтаксис при использовании статического метода класса config().

Синтаксис Kohana 3.1 (на примере www\modules\email\classes\email.php строка 34)

($config === NULL) and $config = Kohana::config('email');

Синтаксис Kohana 3.2 (на примере www\modules\email\classes\email.php строка 34)

($config === NULL) and $config = Kohana::$config->load('email');

Код со старым синтаксисом порождал сообщение об ошибке ErrorException [ Fatal Error ]: Call to undefined method Kohana::config().

Соответственно, старый синтаксис необходимо заменить на новый. Изменений требуют файлы www\modules\email\classes\email.php и www\modules\purifier\classes\purifier\security.php (строки 38, 52 61).

Спасибо за своевременный комментарий Evled-у.

2. Изменился синтаксис передачи параметров экшену.

Синтаксис Kohana 3.1 (на примере www\application\classes\controller\materials.php строка 7)

public function action_category($url = NULL)
	{

Синтаксис Kohana 3.2 (на примере www\application\classes\controller\materials.php строки 7 – 9)

public function action_category()
	{
		$url = $this->request->param('id');

Теперь дополнительный параметр экшену нельзя передавать аргументом, необходимо использовать метод param().

Логичен вопрос – почему в качестве аргумента метода param() используется именно id?

Ответ – потому что именно через id мы обозначили дополнительный параметр экшена в файле boostrap.php, когда описывали маршрутизацию.

Спасибо за своевременный комментарий techno27.

3. Изменение класса исключения, возникающего в случае ошибки 404 Http Exception 404.

В 20-м видеоуроке я рассказывал об обработке ошибки 404 в Kohana 3.1. Как вы помните, был создан соответствующий класс www\application\classes\exceptionhandler.php, в котором описывалась логика фильтрации исключения с классом Http_Exception_404 и, для исключений данного класса, выполнялся код, отображавший специально подготовленный вид страницы 404.

После перехода на Kohana 3.2 класс исключения, в случае возникновения ошибки 404, изменился на следующее значение: HTTP_Exception_404. Т.е. буквы HTTP получили верхний регистр.

Именно это изменение и необходимо учесть в файле www\application\classes\exceptionhandler.php в строке 9 – в условии case 'HTTP_Exception_404' HTTP должно быть написано большими буквами.

Видеоурок

Скачать видеоурок (*.wmv, 23.4 МБ)

В видеоуроке я использую программу Tortoisesvn, являющуюся клиентом системы контроля версий (подробно о системе контроля версий, SVN).

С уважением, Андрей Морковин.

<< Предыдущий видеоурок курса Следующий видеоурок курса >>