Signatur
Beschreibung
Yaf_Exception_LoadFailed_View ist eine spezialisierte Ausnahme im Yaf-Framework (Yet Another Framework), die geworfen wird, wenn der interne Lademechanismus fehlschlägt und eine View-Komponente nicht initialisiert oder gefunden werden kann. Sie gehört zur Hierarchie der Ladefehler-Ausnahmen und erweitert Yaf_Exception_LoadFailed.
Typische Auslöser sind: Eine View-Template-Datei existiert nicht unter dem erwarteten Pfad, der konfigurierte View-Engine-Adapter konnte nicht instanziiert werden, oder das View-Verzeichnis wurde falsch konfiguriert. Über die Konfigurationsschlüssel application.directory und application.view.ext lässt sich der Suchpfad steuern.
Da Yaf_Exception_LoadFailed_View von Yaf_Exception_LoadFailed und letztlich von Yaf_Exception sowie der nativen RuntimeException erbt, kann sie sowohl gezielt als auch generisch abgefangen werden. Es empfiehlt sich, sie in einem zentralen Error-Controller oder mittels set_exception_handler() zu behandeln.
- Prüfen Sie bei diesem Fehler zunächst Pfad und Dateirechte der View-Datei.
- Kontrollieren Sie die Dateiendung (Standard:
.phtml), die überapplication.view.extkonfiguriert wird. - Stellen Sie sicher, dass ein custom View-Adapter korrekt registriert und ladbar ist.
Beispiele
Gezielte Behandlung einer fehlenden View-Datei
<?php
// Bootstrap oder Dispatcher-Konfiguration
$app = new Yaf_Application(APPLICATION_PATH . '/conf/application.ini');
try {
$app->run();
} catch (Yaf_Exception_LoadFailed_View $e) {
// Gezielter Catch für fehlende/nicht ladbare View-Dateien
error_log('[Yaf] View konnte nicht geladen werden: ' . $e->getMessage());
header('HTTP/1.1 500 Internal Server Error');
echo 'Ein interner Fehler ist aufgetreten. Bitte versuchen Sie es später erneut.';
} catch (Yaf_Exception $e) {
// Genereller Yaf-Fehler
error_log('[Yaf] Allgemeiner Fehler: ' . $e->getMessage());
}
Überprüfung der Ausnahmen-Hierarchie
<?php
// Prüfen, ob Yaf_Exception_LoadFailed_View korrekt instanziiert werden kann
// und welche Elternklassen sie hat (hilfreich bei eigenen Error-Handlern)
$exception = new Yaf_Exception_LoadFailed_View(
'View-Datei "/views/index/index.phtml" wurde nicht gefunden.',
503
);
echo $exception->getMessage() . PHP_EOL;
echo 'Ist LoadFailed_View: ' . ($exception instanceof Yaf_Exception_LoadFailed_View ? 'ja' : 'nein') . PHP_EOL;
echo 'Ist LoadFailed: ' . ($exception instanceof Yaf_Exception_LoadFailed ? 'ja' : 'nein') . PHP_EOL;
echo 'Ist Yaf_Exception: ' . ($exception instanceof Yaf_Exception ? 'ja' : 'nein') . PHP_EOL;
echo 'Ist RuntimeException: ' . ($exception instanceof RuntimeException ? 'ja' : 'nein') . PHP_EOL;
// Wichtig · Fallstricke
Konfiguration prüfen: Stellen Sie sicher, dass application.directory in Ihrer application.ini korrekt gesetzt ist und das views-Unterverzeichnis existiert und für den Webserver lesbar ist.
Custom View-Adapter: Wenn Sie einen eigenen View-Adapter (z. B. Smarty, Twig) über Yaf_Dispatcher::setView() registrieren und dieser nicht geladen werden kann, wird ebenfalls Yaf_Exception_LoadFailed_View ausgelöst. Achten Sie darauf, dass der Adapter Yaf_View_Interface implementiert.
Yaf-Erweiterung: Diese Klasse ist Teil der nativen PHP-Erweiterung yaf und steht nur zur Verfügung, wenn diese installiert und aktiviert ist (extension=yaf.so in der php.ini).