Signatur
Beschreibung
Yaf_Exception_LoadFailed_Module ist eine spezialisierte Ausnahme des Yet Another Framework (Yaf), die ausgelöst wird, wenn ein angefordertes Modul innerhalb der Yaf-Anwendung nicht gefunden oder geladen werden kann. Sie erbt von Yaf_Exception_LoadFailed und damit letztlich von Yaf_Exception, die ihrerseits von der eingebauten PHP-Klasse Exception erbt.
In Yaf ist ein Modul eine logische Gruppierung von Controllern und Ressourcen – typischerweise ein Unterverzeichnis unterhalb des modules-Ordners der Anwendung. Kann Yaf das angegebene Modul nicht finden (z. B. weil das Verzeichnis fehlt oder der Modulname falsch geschrieben ist), wird diese Ausnahme ausgelöst.
Diese Ausnahme sollte in eigenen Fehlerbehandlungsroutinen (try/catch) oder im zentralen Yaf-Fehler-Handler abgefangen werden, um dem Benutzer eine sinnvolle Fehlermeldung anzuzeigen, anstatt einen unbehandelten Fehler zu präsentieren.
- Prüfe den Modulnamen auf korrekte Schreibweise (Groß-/Kleinschreibung beachten).
- Stelle sicher, dass das Modul-Verzeichnis unter
application/modules/korrekt angelegt ist. - Überprüfe die Konfiguration (
application.modulesin derapplication.ini), ob das Modul dort registriert ist.
Beispiele
Modul-Ladefehler abfangen
<?php
// Bootstrap oder Front-Controller-Setup
$app = new Yaf_Application('/pfad/zur/conf/application.ini');
try {
$app->run();
} catch (Yaf_Exception_LoadFailed_Module $e) {
// Modulname konnte nicht aufgelöst werden
echo 'Modul konnte nicht geladen werden: ' . $e->getMessage();
} catch (Yaf_Exception $e) {
echo 'Allgemeiner Yaf-Fehler: ' . $e->getMessage();
}
Hierarchisches Abfangen von Yaf-Ladefehlern
<?php
// Gezieltes Unterscheiden verschiedener LoadFailed-Ausnahmen
try {
$app = new Yaf_Application('/pfad/zur/conf/application.ini');
$app->run();
} catch (Yaf_Exception_LoadFailed_Module $e) {
// Nur Modulfehler
error_log('[YAF] Modul nicht gefunden: ' . $e->getMessage());
header('HTTP/1.1 404 Not Found');
echo '404 – Das angeforderte Modul existiert nicht.';
} catch (Yaf_Exception_LoadFailed_Controller $e) {
// Nur Controller-Fehler
error_log('[YAF] Controller nicht gefunden: ' . $e->getMessage());
header('HTTP/1.1 404 Not Found');
echo '404 – Der angeforderte Controller existiert nicht.';
} catch (Yaf_Exception $e) {
error_log('[YAF] Unbekannter Fehler: ' . $e->getMessage());
echo 'Ein interner Fehler ist aufgetreten.';
}
// Wichtig · Fallstricke
Konfiguration: Damit Yaf Module korrekt erkennt, müssen sie in der application.ini unter dem Schlüssel application.modules als kommagetrennte Liste eingetragen sein, z. B. application.modules = Index,Admin,Api. Fehlt dieser Eintrag, behandelt Yaf nur das Standardmodul Index.
Groß-/Kleinschreibung: Yaf unterscheidet je nach Betriebssystem zwischen Groß- und Kleinschreibung der Verzeichnisnamen. Unter Linux muss das Verzeichnis exakt dem Modulnamen entsprechen (z. B. modules/Admin für das Modul Admin).
Vererbungskette: Yaf_Exception_LoadFailed_Module → Yaf_Exception_LoadFailed → Yaf_Exception → Exception. Ein catch (Yaf_Exception_LoadFailed $e)-Block fängt diese Ausnahme ebenfalls ab.