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

Статьи на тему программирования под веб, используя 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

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

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

  

Облако тегов

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

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

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

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

Календарь

Январь 2018
Пн Вт Ср Чт Пт Сб Вс
« Июл    
1234567
891011121314
15161718192021
22232425262728
293031  

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