Klasse soll herausfinden in welcher Datei sie initialisiert wurde

worki2k1

Erfahrenes Mitglied
Hallo Leute,

heute steh ich mal wieder vor einem Problem, zu dem ich bisher keine Lösung gefunden habe. Bei der Initialisierung einer Klasse bzw. auch in einer später aufgerufenen Methode der Klasse soll in der Methode ermittelt werden können in welcher Datei die Klasse initialisiert wurde oder die Methode aufgerufen wurde, ohne, dass der Klasse oder Methode dieser Wert als Parameter mitgegeben wird.

Beispiel:

PHP:
// myclass.php

class MyClass
{
  function doSomething ()
  {
    // Hier soll ermittelt werden, dass diese Funktion in file.php aufgerufen wurde
    // ohne, dass ich __FILE__ übergebe.
    // __FILE__ gibt hier logischerweise myclass.php zurück
  }
}
PHP:
// file.php
include ('myclass.php');

$a = new MyClass ();
$a->doSomething ();
Hat jemand vielleicht eine Idee, wie man das erreichen kann? Danke schonmal.
 
PHP unterstützt keine wirkliche Inlinefunktionen / Makrofunktionen - Ohne diese wird das Anliegen ohne eine Übergabe von __FILE__ oä nicht möglich sein. Irgendwo musst du also __FILE__ übergeben - Das kannst du optional auch über eine setter-Methode machen, die den Pfad einmalig festlegt. In jedem File müsste das praktisch dann ein- oder mehrmalig (je nach Bedarf) aufgerufen werden, erspart aber das Anfügen in einer anderweitig genutzten Methode.

Edit: Wow, gar nicht dran gedacht! Danke, Matthias, für den Hinweis.
 
Danke Matthias. Die Funktion kannte ich noch gar nicht. Die wird mir sicher noch irgendwann weiterhelfen. Die Funktion liefert mir zwar die Daten, die ich benötige, verbraucht aber aufgrund der Komplexität meines Klassensystems zuviele Ressourcen.
 
Zurück