• Willkommen im Zend Framework Forum

    ZF1 Zend Framework 1 + ZF2 Zend Framework 2

    Das Zend Framework Forum ist seit 2006 die erste Anlaufstelle für Zend Framework Entwickler in Deutschland. Mit über 70.000 Beiträgen und einer steigenden Nutzerzahl bietet das Forum hilfreiche Themen und ZF-Tutorials für professionelle Entwickler, fortgeschrittene Programmierer sowie Zend Framework Einsteiger.
    Wenn dies Dein erster Besuch in der Zend Framework Community ist, lies bitte zuerst die Hilfe - FAQ durch. Du musst Dich registrieren, bevor Du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um die Registrierung zu starten. Du kannst auch jetzt schon Beiträge lesen. Hier im Forum findest Du die Zend Framework Hilfe, die Du suchst!

    Grüße an alle Zend Framework Entwickler. Das Team vom Zend Framework Forum!

    Drupal Agentur

frontController plugin with parameter applicationen.ini

flod

New member
Hallo,

ich würde gern meinem frontController Plugin einen Parameter mitgeben. zb

resources.frontController.plugins.generator= "Si_Plugin_Generator"
resources.frontController.plugins.generator.key= value

Bekomme aber immer nur ein
PHP:
Fatal error:  Uncaught exception 'Zend_Config_Exception' with message 'Cannot create sub-key for 'generator' as key already exists'
obwohl es doch so auch in der Doku steht das, oder habe ich das falsch verstanden?

Vorhandene Ressource Plugins - Zend_Application - Zend Framework
 

flod

New member
Ok habe den Fehler gefunden.

Leider habe ich keine Möglihckeit gefunden wie ich parameter für das Plugin setze.

Jemand eine idee=?
 

Kaiuwe

Super-Moderator
Also ich bekomme so keine Parameter in das Plugin übergeben.
Steht auch nirgendwo das dies möglich wäre.

Zitat aus der Doku:
plugins: Array von Front Controller Plugin Klassennamen. Die Ressource wird jede Klasse instanziieren (ohne Constructor Argumente) und die Instanz dann mit dem Front Controller registrieren. Wenn man ein Plugin mit einem speziellen Stackindex registriert muss man ein Array mit den zwei Schlüsseln class und stackIndex angeben.
Und „params“ bezieht sich auf den FrontController und nicht auf Plugins:
params: Array von Schlüssel und Wert Paaren die mit dem Front Controller registriert werden sollen.
 

flod

New member
Danke crash,

habs nun so erweitert.

PHP:
resources.frontController.plugins.generator.class = "Si_Plugin_Generator"
resources.frontController.plugins.generator.params.param1 = "value1"
resources.frontController.plugins.generator.params.param2 = "value2"
Im Plugin selber habe ich im preDsipatch folgende zeilen:

PHP:
$front = Zend_Controller_Front::getInstance();
$bootstrap = $front->getParam("bootstrap");
$config = $bootstrap->getOptions();

if(isset($config["resources"]["frontController"]["plugins"]["generator"]['params'])){
 $params = $config["resources"]["frontController"]["plugins"]["generator"]['params'];
}
 

Kaiuwe

Super-Moderator
Im Plugin selber habe ich im preDsipatch folgende zeilen:

PHP:
$front = Zend_Controller_Front::getInstance();
$bootstrap = $front->getParam("bootstrap");
$config = $bootstrap->getOptions();

if(isset($config["resources"]["frontController"]["plugins"]["generator"]['params'])){
 $params = $config["resources"]["frontController"]["plugins"]["generator"]['params'];
}
Eleganter ist es, dies alles in eine eigene Ressource für „Zend_Application“ zu setzen, denn dein Plugin braucht nicht zu wissen woher die Konfiguration kommt.
 
Oben