Start · Sprachen · PHP · Referenz · Yaf_Exception_LoadFailed_View

Yaf_Exception_LoadFailed_View

Klasse

Wird ausgelöst, wenn Yaf eine View-Datei oder View-Engine nicht laden kann.

seit PHP 2.1.0 Kategorie: misc

Signatur

class Yaf_Exception_LoadFailed_View extends Yaf_Exception_LoadFailed

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 über application.view.ext konfiguriert 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;
View-Datei "/views/index/index.phtml" wurde nicht gefunden. Ist LoadFailed_View: ja Ist LoadFailed: ja Ist Yaf_Exception: ja Ist RuntimeException: ja

// 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).