ich lese und probiere und frickel und probiere weiter und komme einfach nicht drauf…
Es geht um ein Frontend-Plugin.
Der Controller wird ganz normal aufgerufen, das weiß ich, weil ich mit einer die(‘hello wolrd’); ein entsprechendes Ergebnis erhalte, wenn ich den Controller vie URL aufrufe.
Allerdings will mir einfach nicht gelingen, statt dieser Hello World Sache ein Template zu laden. Was machen ich bitte falsch?
Hier meine Callback:
public function onGetControllerPromotionFrontend(Enlight_Event_EventArgs $arguments) {
$controller = $arguments->get(‘subject’);
$view = $controller->View();
$view->addTemplateDir(
__DIR__ . ‘/Views’
);
return __DIR__ . ‘/…/Controllers/Frontend/MyController.php’;
Ja danke. Ich hatte mitterweile selber herausgefunden, dass es am „Auslagern“ der Event-Subscriber in eine eigene Datei lag. Hier sind dann (natürlich) die Bootstrap-Funktionen und - Variablen nicht mehr (ohne Weiteres) vorhanden.
Was mich dann aber doch wundert, ist, weswegen im Developers Guide so betont wird, wie vorteilhaft es ist, die Events in einen separaten Subscriber zu legen.
Naja, egal jetzt.
Jetzt läuft alles normal. (Halt ganz normal mit Event-Subscriber in der Bootstrap-Datei)
Es ist auch korrekt die subscriber auszulagern und die bootstrap zu entschlacken. Du kannst zB die bootstrap dem subscriber im constructor übergeben und alle relevanten Pfade ausgehend von this->bootstrap->Path() angeben.
Ok, das klingt vielsversprechend. Ich würde nur gerne wissen, wie man die „bootstrap dem subscripber im constructor“ übergibt. Alles, was ich versucht habe, damit ich auf entsprechende Variablen und Funktionen zugreifen kann, hat nicht funktionieren wollen.
Ich würde mich wirklich sehr über einen weiteren Hinweis (oder noch besser: Code-Beipspiel) freuen.
Es ist auch korrekt die subscriber auszulagern und die bootstrap zu entschlacken. Du kannst zB die bootstrap dem subscriber im constructor übergeben und alle relevanten Pfade ausgehend von this->bootstrap->Path() angeben.