Hallo,
seit kurzem beschäftige ich mich etwas mit PHP, nun stehe ich vor zwei Problemen und hoffe, dass mir hier jemand behilflich sein kann.
Ich habe eine Konfigurationsdatei, wo ich allgemeine Daten speicher, diese speicher ich mittels Konstanten.
Nun möchte ich gerne die Konfig-Datei über eine globale Klasse laden und dann ganz normal verwenden können.
Versucht habe ich das nun so:
<?phpclass GlobalClass {
public function __construct() { $this->loadConfig(); }
function loadConfig() { require_once __DIR__.'config.php'; }}?>
Da ich Smarty nutze, möchte ich diese Konstanten nun mittels Smarty ganz normal in meinem TPL nutzen.
Leider funktioniert das nicht (wird nichts ausgegeben). Mit dieser Funktion. Wenn ich die Datei hingegen direkt im TPL include, dann geht das.
Das zweite Problem:
Liegt bei Smarty. Da ich die Smarty-Klasse nicht in jeder Datei neu laden will, wollte ich es ebenfalls über diese globale Klasse machen.
Versucht habe ich es wie folgt:
class GlobalClass { public static $smarty public function __construct() { $this->initSmartyTPL(); } function initSmartyTPL() { self::$smarty = new smarty; }}?>
class MySite {
public function getSite() {
//... DB-Abfragen etc.
GlobalClass::$smarty->assignByRef('bla', $bla); GlobalClass::$smarty->display('MySite.tpl');
}
}
Resultiert in der Fehlermeldung "Call to a Member function assignByRef() on a non-object in ..."
Würde mich freuen, wenn mir jemand weiterhelfen könnte...