0

Ich versuche, eine Ansicht Plugin-Setup die Routen Spiele in Zend Framework zu belichten 2. Das Plugin so etwas wie diese:Was ist der beste Weg, um ein View-Plugin in Zend Framework 2 einzurichten?

class GetRouteMatch extends AbstractHelper 
{ 
    /** 
    * Route match returned by the router. 
    * 
    * @var RouteMatch. 
    */ 
    protected $routeMatch; 

    /** 
    * Set route match returned by the router. 
    * 
    * @param RouteMatch $routeMatch 
    * @return self 
    */ 
    public function setRouteMatch(RouteMatch $RouteMatch) 
    { 
     $this->routeMatch = $RouteMatch; 
     return $this; 
    } 

    public function __invoke($param) 
    { 
     return $this->routeMatch->getParam($param, false); 
    } 
} 

Was ist der beste Weg, das RouteMatch Objekt Setup? Ich muss es im Modul Bootstrap oder in der Steuerung tun?

Im Moment habe ich auf diese Weise im Innern des Reglers gelöst

$renderer = $this->getLocator()->get('Zend\View\Renderer\PhpRenderer'); 
$routeMatch = $renderer->plugin('routeMatch'); 
$routeMatch->setRouteMatch($this->getEvent()->getRouteMatch()); 

Das RouteMatch Objekt manuell injiziert wird .. aber ich bin sicher, dass

+0

Ich denke, das ist einer der ellegant Wege .. –

Antwort

0
ein besserer Weg gibt es

Die besten zu initialisieren ist solcher Code in Ihrer Modulklasse. Sie können dort ein Ereignis anhängen, um Abhängigkeiten wie das routematch zu injizieren. Der Routematch wird jedoch bald verfügbar sein. Es ist in Arbeit, das Routematch in einem Service-Locator zu setzen. Dies bedeutet, dass Sie DI konfigurieren können, um das Routematch vom Service-Locator zu ziehen. Dann müssen Sie diese Dinge nicht mehr selbst schreiben.

+0

Fein, danke. Ich warte auf die neue Beta, um es zu automatisieren – seltzlab

Verwandte Themen