Архив за месяц: Декабрь 2012

Транзакции в Kohana

kohana

Внезапно мне понадобились транзакции на вебсайте. Кому это надо — тот знает о чём я. И встал вопрос, как по-возможности культурнее их сделать

Понятно, что всегда можно просто прямыми запросами к базе данных послать START TRANSACTION , COMMIT или ROLLBACK, но некрасиво это.

И вот оказывается есть прямо специальные функции в объекте Database. Вот собственно пример, думаю тут всё понятно.

	    $db = Database::instance();
	    
	    // Start the transactions
	    $db->begin();

	    try {
		DB::insert('users')->values($user1)...
		DB::insert('users')->values($user2)...
		// Insert successful commit the changes
		$db->commit();
	    }
	    catch (Database_Exception $e)
	    {
		// Insert failed. Rolling back changes...
		$db->rollback();
	    }	 

Kohana 3.2 Страница ошибки — дёшево и сердито!

kohanaЕсли вы хотите сделать полноценную обработку ошибок в Kohana, то нужно создавать свой класс Exception, наследник Kohana_Kohana_Exception, в котором мутить всю логику, потом создать под это дело контроллер с вьюсами и роутами.

Этот путь хорошо описан в мануале и довольно хорошо переведён и прокомментирован тут
Читать далее