On Sat, 10 Jul 2021 22:39:45 Karl Pflästerer wrote:
>
Stefan...@Froehlich.Priv.at (Stefan Froehlich) writes:
> > On Fri, 09 Jul 2021 15:07:18 Stefan Froehlich wrote:
> >> Gibt es einen denkbaren Umstand (und vor allem: welchen?),
> >> durch den
> >>
> >> #v+
> >> <?php class_exists($module, true) ?>
> >> #v-
> >>
> >> false zurückgibt, *ohne* davor die von spl_autoload_functions()
> >> ausgegebenen Handler aufzurufen?
[...]
> > Bei syntaktisch ungültigen Klassennamen wird also nicht der
> > Autoloader aufgerufen und auch keine Exception geworfen, sondern
> > class_exists() gibt einfach false zurück - steht so nicht in der
> > Dokumentation, ist evt. aber gut zu wissen.
> Das steht dort nicht explizit, aber class_exists gibt nur dann
> true zurück, wenn die Zeichenkette der Name einer definierten
> Klasse ist. Ansonsten false. Da man Zeichnketten übergibt kann
> man viele syntaktisch ungültige Klassennamen übergeben.
Im Grund genommen ja, wobei IMO das Werfen eines Fehlers vielleicht
geschickter wäre. Wenn man wirklich mit syntaktisch ungültigen
Klassennamen arbeiten möchte, könnte man ihn ja abfangen, ansonsten
hat man aber wenigstens gleich einen Hinweis auf das Problem.
> Es erscheint mit sinnvoll nur dann den autoloader aufzurufen, wenn
> die Zeichenkette überhaupt auf eine Klasse verweisen könnte
Eh. In meinem Fall werden Views als Klassen implementiert, und in
einem Template war anstatt \Level1\Level2\Child::class versehentlich
"/Level1/Level2/Child" als String eingetragen. Das hat dann ein paar
km weiter hinten ein Problem erzeugt - und ich war zunächst so
fokussiert auf Fehler in der Modul*bezeichnung* und danach so
irritiert, dass die Datei nicht einmal gesucht wird, dass mir die
falsche Syntax schlicht nicht aufgefallen ist.
Servus,
Stefan
--
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike
Stefan - Wer trägt heute schon Eulen nach Athen?
(Sloganizer)