borisbaer: PHP-Klassen in Framework global verfügbar machen

Beitrag lesen

Hallo Felix,

Ich möchte die Klasse nicht im View instanziieren müssen,

warum eigentlich nicht?

eine Klasse, die ohnehin global verfügbar gemacht werden soll, immer wieder neu zu instanziieren scheint mir unnötig. Aber darum geht es mir eigentlich gar nicht. Ich muss auch im Layout auf eine bestimmte Klasse zugreifen und das Layout wird nicht durch einen Controller gerendert, sondern durch die View-Klasse. Ich könnte hier die entsprechende Variable übergeben, doch versuche ich, gerade das zu vermeiden und nach Möglichkeit die index.php dafür zu bemühen.

Naja, Du könntest mWn eine Variable global verfügbar machen:

$sess = new \Core\Session;

class MyClass {
  public function myMethod () {
    global $sess;
    if ($sess->isGuest()) {
      //
    }
  }
}

Wie unten beschrieben, habe ich das Problem, dass die Variablen meiner index.php nicht mehr auf den gerenderten Seiten abgerufen werden können. Ich könnte natürlich direkt in die Layout-Datei schreiben, z.B. <?php $session = new \Core\Session; ?>. Allerdings gefällt es mir nicht, Klassen direkt in Templates zu laden.

Grüße
Boris