Dann muss das eine Template dem anderen Template das Objekt übergeben.
Sprachdateien, Templates und globale Daten
Einklappen
X
-
Naja super, dann hab ich auch wieder ein riesenobjekt das immer weitergegeben wird. Ich weiß mittlerweile, warum das bei mir nicht funktioniert, der Ablauf ist folgendermaßen;
PHP-Code:// Index.php:
if ($blub)
req('dosomething.php')
else
req('dootherthings.php')
showTpl('index')
// index.tpl
showTpl('header')
showTpl('menu')
showTpl('content')
showTpl('footer')
// content.tpl
if ($tpl['bla'])
showTpl('start')
else
showTpl('ende')
Wenn ich in den funktionalen Dateien die Templates als Objekte erstelle, sind die ja im falschen Scope - da die Templates erst später tatsächlich angezeigt werden sollen.This is what happens when an unstoppable force meets an immovable object.
Kommentar
-
Zitat von ApoY2k Beitrag anzeigenDa ich dynamisch schaue, welche funktionalen (dosomething.php) Dateien eingebunden werden, und dementsprechend auch in den Templates dynamisch geschaut wird, welche Subtemplates gebraucht werden, weiß ich eben nie, 1. welche templates einbegunden werden und 2. welche daten sie brauchen.Zuletzt geändert von h3ll; 01.07.2010, 19:36.
Kommentar
-
Die einzige Logik in den Templates sind for(each)-Schleifen, if-Abfragen oder eben neue Templates einbinden...
Beispiel:
PHP-Code:if (isset($tpl['list']) && 1 <= count($tpl['list']))
{
foreach ($tpl['list'] as $row)
{
echo '<a href="?url='.$row['url'].'">'.$row['name'].'</a>';
}
}
Zuletzt geändert von ApoY2k; 01.07.2010, 19:41.This is what happens when an unstoppable force meets an immovable object.
Kommentar
-
Okay, danke mal für deine Geduld. Werd wohl noch ein bisschen arbeiten müssen bis es passt Wobei ich ehrlich gesagt die Idee mit der Template-"Registry" (passt glaub am besten) für mein Projekt am sinnvollsten erachte... einfach weil ich ehrlich gesagt (noch) nicht genug über MVC in PHP verstehe, um damit zurechtzukommen.
Aber für die nächste Version werd ichs mal in Betracht ziehen. Gibts dazu vll auch Tutorials, die es anhand einer normalen PHP-Installation (ohne den Zend-Framework-Kram) erklären?Zuletzt geändert von ApoY2k; 01.07.2010, 20:16.This is what happens when an unstoppable force meets an immovable object.
Kommentar
-
Ich wollte jetzt keinen neuen Thread aufmachen, frag einfach hier mal;
Ich wollte gerade mal alle Sessionbezogenen Daten in der $_SESSION speichern. Da ist mir die Idee gekommen, dass dazu ja eigentlich praktischerweise auch die Datenbankverbindung gehört.
Also habe ich das versucht
PHP-Code:$_SESSION['db'] = new PDO(...);
Wenn ich die Zeile auskommentiere, ist der Error weg.
Erstaunlicherweise funktionieren aber Anweisungen wie
PHP-Code:$_SESSION['db']->query(...)->fetchAll();
Ist das ein PDO-Spezifisches Problem, dass man das nicht in der Session speichern kann? (Sollte man das überhaupt machen?)This is what happens when an unstoppable force meets an immovable object.
Kommentar
-
hmm- ich würd ja wenigstens den Umweg über eine Zwischenvariable versuchen
Code:$db_verb = new PDO (...); $_SESSION['db']=$db_verb;
[font=Verdana]
Wer LESEN kann, ist klar im Vorteil! [/font]
Kommentar
-
Außerdem wäre das ziemlich unklug. Stell dir vor, man könnte eine Verbindung in der Session ablegen. Eine Session ist, sagen wir, 30 Minuten gültig. Wenn du jetzt 100 Besucher in 30 Minuten hast, wären auch ständig 100 Datenbankverbindungen offen.
Kurz gesagt: Eine Datenbankverbindung gehört nicht zur Sitzung, sondern zum Prozess und hat somit in der Session nichts verloren.
Kommentar
Kommentar