Exceptions innerhalb der eigenen Extension
Die Standart Exception-Ausgabe von Extbase/Fluid ist nicht gerade schön, schon gar nicht für den Besucher, der sollte die Meldung nicht sehen.
Mit Hilfe eines eigenen Action Controllers kann die bestehende überladen werden und eine eigene Ausgabe erzeugt werden.
Dazu erstellt man einen BaseController.php und passt alle bestehenden Controller so an, dass sie neu die BaseController Klasse extenden.
BaseController.php
<?php abstract Class Tx_MeineExtension_Controller_BaseController extends Tx_Extbase_MVC_Controller_ActionController { protected function callActionMethod() { try { parent::callActionMethod(); } catch(Exception $e) { $this->response->appendContent( 'Es ist ein Fehler aufgetreten. ('.$e->getCode().')<div class="error"><br>' . $e->getMessage() . '<br>' . $e->getTraceAsString() . '<div>'); } } } ?>
Bestehende Controller anpassen
In bestehenden Controllern muss jetzt überall wo „extends Tx_Extbase_MVC_Controller_ActionController“ steht, ersetzt werden mit Tx_MeineExtension_Controller_BaseController
Ausgabe
Es ist ein Fehler aufgetreten:
Missing argument „as“. (12389849323)
…
Ausgabe anpassen
Es können auch noch weitere Informationen ausgegeben werden.
Alle Methoden sind auf der php.net-Seite aufgelistet:
http://php.net/manual/de/class.exception.php