MB: Klassen Konstanten zu laufzeit definieren?

Beitrag lesen

moin Community,

ich hab versucht klassen konstanten dynamisch zur laufzeit zu erstellen, was leider Fehlgeschlagen ist 😕. Zur Frage: Kann man überhaupt das machen? Geht das? wenn nein: Alternative?

Ich hab daher versucht sowas zumachen, schlug leider aber auch fehl. Methoden bei property-Deklaration in Klassen geht bekanntlich nicht.

class Paths {
  private static $root; // hilfsvariable
  private function __() { // automatisches 
    self::$root = dirname( _DIR__ );
  }
  const ROOT = self::$root;
}

Zur Arbeit: Ich habe das gesamte Verzeichnis des Frameworks gescant und dann in nem Array die Pfade gespeichert. Eine andere Klasse hat dann dieses Array genommen und daraus Konstanten mit define() erzeugt aber keine Klassenkonstanten :/. schön wäre es mit dynamisch erzeugtem Path::ROOT und nicht mit PATH_ROOTarbeiten zu können. Ich sehe die Klassen-Konstanten als eine Abhängigkeit zwischen Konstante und Klasse, und in Konstanten die mit define() erzeugt wurde ist diese schöne Abhängigkeit nicht vorhanden.

Ich krig einfach die Pfad-Konstanten als Initalisierung nicht richtig zustande, die dann für die Autoloader-Klasse (intern spl_autoload_register()) zurverfügung stehen. Ich muss ja vorab, im Entrypoint, Pfade konstruieren zu den Dateien navigieren die wiederum Pfade als Klasse Konstruieren.

Die Frameworks die ich mir angeschaut habe nutzen Composer und andere sehr statisch mit 'require'.

vlg MB