Rolf B: php include - welches Programm includiert?

Beitrag lesen

Hallo Linuchs,

ich hab das mal für Dich gegoogelt.

Erste gefundene Antwort ist: Lass das. Warum sollte man - außer zu Debug-Zwecken - wissen wollen, von wo eine Datei inkludiert wird? Wenn Du meinst, dieses Wissen zu benötigen, hast Du einen Designfehler.

Zweite gefundene Antwort ist: debug_backtrace()

Zum Design: Es gibt die PHP Standard Recommentation PSR-1, in der steht:

2.3. Side Effects

A file SHOULD declare new symbols (classes, functions, constants, etc.) and cause no other side effects, or it SHOULD execute logic with side effects, but SHOULD NOT do both.

Das heißt: Für eine Include-Datei bietet sich an, dass sie keine Seiteneffekte hat und lediglich Klassen und Funktionen deklariert. Die Funktionen bzw. die in den Klassen vorhandenen Methoden dürfen bei Aufruf natürlich Seiteneffekte haben (sprich: I/O machen oder ähnlich).

Und das heißt: alle Kontextinformationen, die für die Includes relevant sind, übergibst Du beim Aufruf der von dort geholten Klassen und Methoden. Dass die Include-Datei sich aktiv über ihr Umfeld "informiert", ist unerwünscht.

Rolf

--
sumpsi - posui - obstruxi