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

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

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

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

рубрика: ZendFramework

Комментирование открыто.

не публикуется

пример

Оставить комментарий или два:

  

Облако тегов

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

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

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

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

Календарь

Январь 2010
Пн Вт Ср Чт Пт Сб Вс
« Дек   Фев »
 123
45678910
11121314151617
18192021222324
25262728293031

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