Dies ist wahrscheinlich eine wirklich dumme Frage, aber ich kann die Antwort nicht finden und Versuch und Irrtum sind fehlgeschlagen.
Ich entwickle eine Komponente für Joomla 3.x und habe eine Reihe von Klassen, die ich verwenden möchte. Ich versuche die JLoader::registerPrefix()
Methode zu implementieren . Nehmen wir an, ich habe zwei Klassen Helper
und NotHelpful
. Helper
ist eine statische Klasse, gespeichert unter:
JPATH_LIBRARIES. '/foo/bar/Helper.php'
und NotHelpful
ist eine nicht statische Klasse, gespeichert unter:
JPATH_LIBRARIES. '/foo/baz/NotHelpful.php'
Wenn ich diese registrieren möchte, würde ich nach meinem Verständnis anrufen:
JLoader::registerPrefix('Foo', JPATH_LIBRARIES . '/foo');
was ich vom Einstiegspunkt bis zur Anwendung mache.
Dann Anruf Helper
, würde ich nur verwenden , FooBarHelper::method1();
ein neues oder zu instanziiert NotHelpful
wäre$Class = new FooBazNotHelpful();
Was mir unklar ist, ist, wie der tatsächliche Klassenname in Helper.php oder NotHelpful.php lauten sollte. Sollte es sein FooBarHelper
, Helper
, BarHelper
, oder etwas ganz anderes?
Wenn ich versuche anzurufen, FooBarHelper::method1();
erhalte ich den Fehler, egal wie meine Klasse heißt:
Schwerwiegender PHP-Fehler: Klasse 'FooBarHelper' nicht gefunden in
Ich mache eindeutig mindestens eine Sache falsch. Kann mir jemand sagen, was einer oder mehrere von ihnen sind?
class Helpful { ...
oderclass FooBazNotHelpful { ...
oder etwas anderes?