За чистый и ясный код!

Статьи на тему программирования под веб, используя PHP, MySQL, Jquery и многое другое

выполнение действий до (preDispatch) и после (postDispatch) действия (Action)

Январь4

Всем привет. В этой статье я хочу поделится с Вами о том как выполнять какие-то действия до/после выполнения действий в методе Action контроллера.

Для чего это может понадобится? Ну например, перед тем как делать действия вам необходимо удостоверится залогинелся пользователь или нет. Конечно можно в каждом методе Action проверять залогинелся ли юзер или нет, но при таких условиях и в зависимости от громоздкости Вашего приложения необходимо это условие прописывать во всех методах, это не удобно, а вдруг Вы решите как-то сменить метод проверки на залогиненность, что тогда? Переписывание всех условия. Для решения данной задачи, можно создать контроллер который будет наследоваться от Zend_Controller_Action и в этом контроллере будет метод preDispatch или postDispatch которые будут делать действия до или после выполнения действий в самом экшене.

class BaseController extends Zend_Controller_Action
{
	/**
	* Pre-dispatch routines
	*
	* (non-PHPdoc)
	* @see Site/branch/Lib/Zend/Controller/Zend_Controller_Action#preDispatch()
	*/
	public function preDispatch()
	{
		$auth = Zend_Auth::getInstance();
		$userAuth = $auth->getStorage()->read();

		if (isset($userAuth->Id))
		{
			$this->_redirect('/');
		}
	}
}

class Module_IndexController extends BaseController
{
	public function indexAction()
	{
		// какие-то свои действия
	}
}

такие же работает и метод postDispatch.

Дешевая техника в интернет-магазине http://bestchinashops.ru/chinabuye/

Есть еще:

метод init() — этот метод выполняет действия вообще до метода preDispatch.

метод Render() — этот метод рисует данные вьюхи.

более подробно о всех методах вот тут — Контроллеры действий

Также мне было интересно в какой последовательности выполняются различные служебные методы, ниже приведена табличка:

позиция метод
1 __construct
2 init
3 preDispatch
4 indexAction
5 postDispatch

Именно в такой последовательности запускаются методы. Юзайте на здоровье.

Статья просмотренна 42576 раз, зашло посетителей 10521

  

Облако тегов

cli csv dump events form Kohana locale models MySQL mysqldump orm PHP tools trigger validate газ газовый счетчик итоги кеширование переменные

Облако тегов плагина WP Cumulus для WordPress требует для просмотра Flash Player 9 или выше.

Я на твиттере!

  • у твиттера тоже бывают перерывы...

Календарь

Октябрь 2024
Пн Вт Ср Чт Пт Сб Вс
« Июл    
 123456
78910111213
14151617181920
21222324252627
28293031  

Сейчас на сайте