Содержание


MvcEvent


MvcEvent, Mvc Event, событие MVC, ЗФ2, Zend Framework 2, ZF2, ру, ru




Слой MVCв ZendFramework 2 включает в себя и использует  пользовательскую реализацию Zend\EventManager\Event  -  Zend\Mvc\MvcEvent. Это событие создается в процессе работы Zend\Mvc\Application::bootstrap() и передается непосредственно во все события, которые срабатывают в методах. Так же, если контроллер реализует Zend\Mvc\InjectApplicationEventInterface , то MvcEvent инъецируется в контроллеры.

 

В MvcEvent существуют следующие методы для обеспечения доступа и изменения:

 

- Объект Application

- Объект Request

- Объект Response

- Объект Router

- Объект RouteMatch

- Result – обычно результат контроллера после диспетчеризации

- Объект ViewModel - как правило, представляет модель layout view.

 

Доступные в них методы:

 


  • setApplication($application)
  • getApplication()
  • setRequest($request)
  • getRequest()
  • setResponse($response)
  • getResponse()
  • setRouter($router)
  • getRouter()
  • setRouteMatch($routeMatch)
  • getRouteMatch()
  • setResult($result)
  • getResult()
  • setViewModel($viewModel)
  • getViewModel()
  • isError()
  • setError()
  • getError()
  • getController()
  • setController($name)
  • getControllerClass()
  • setControllerClass($class)

 

Application, Request, Response, Router, и ViewModel инъецируютсявовремясобытиязагрузки. После события «route», он будет инъецирован с объектом RouteMatch, инкапсулируя результаты маршрутизации.

 

Так как этот объект «протягивается» через всё MVC, то он автоматически становится местом для получения результатов маршрутизации (routing), маршрутов (route), объектов запросов (request) и ответов (response). Так же поощряется настройка результатов выполнения в событиях, позволяя слушателям событий анализировать и использовать их  при срабатывании. Например, результаты могут быть переданы непосредственно в view renderer.

 

 


Автор статьи: DuB