Hallo Andreas,
Also das PEAR nicht direkt verwendet werde sollte, war mir auch schon aufgefallen. Ist nur die Frage ob ich dann noch PEAR brauche, oder lieber selbst Module für die verschiedenen Datenbanken schreibe.
Das verstehe ich nicht so ganz, PEAR::DB kannst Du doch einsetzen, ich sehe das Problem nicht? Warum Code 2x schreiben?
Nur wie soll ich das parallel verwenden?
Wie willst Du *was* parallel verwenden?
Sven hat mir doch im Prinzip ein Äquivalent zu Smarty beschreiben, halt Templtes, die geparst werden, mit eigener Programmierlogik...
Jain. Du kannst mit Smarty auch Svens Anwendungsbereich abdecken (s.u.) Aber Smarty-Templates bieten vorrangig erst einmal Variablenersetzungen. Sven will ja dagegen Templates implementieren, die etwas vom Programm "anfordern". (bzw. so geparsed werden, dass der gleiche Effekt entsteht)
das kann doch Smarty alles perfekt, ist sogar erweiterbar! Ich kann doch nicht 2 Level Templates und 2 Parser verwenden, as wäre doch nun wirklich Quatsch, also entweder oder habe ich gedacht.
Eben.
Ich dagegen würde folgendes machen:
ich weise der der PHP-Variable $DATENBANKABFRAGE_Select-TOP-10-from-Artikelverkauft einen Methoden-Aufruf zu (im Modul, d.h. das Modul-Script hat eine Klasse und "normalen" PHP code der bei Smarty ja auch nötig ist um das Template zu laden), der dann genau dasselbe erledigt wie bei Sven. Was ist daran das Problem?
Ich weiß nicht, ob man in Smarty auf Methoden zugreifen kann, ich glaube nicht, aber Du kannst Funktionen in Smarty zugänglich machen:
function zeige_top_ten_artikel_an () {...}
$tpl->register_function ("top10artikel", "zeige_top_ten_artikel_an");
------
{top10artikel}
Das würde Svens Konzpt mehr oder weniger in Smarty abbilden. Du könntest jedoch auch *alle* erdenklichen Abfragen *vorher* durchführen und diese dann Smarty als Variable zuweisen, aber das würde einen Overhead produzieren, der recht groß ist, vor allem, wenn nicht alle Funktionen gebraucht werden. Du könntest Funktionen auch variabel machen, wenn Du Parameter benutzt. Dann könntest Du eine Funktion in Smarty für die Datenbankausgabe definieren, welche dann einen Parameter besitzt, der den Namen der Abfrage enthält. Dich interessiert auf jeden Fall http://smarty.php.net/manual/en/api.register.function.html.
Grüße,
Christian
P.S.: ich bin etwas müde, sollte ins Bett, daher hafte ich (a) nicht für Rechtschreibfehle und (b) nicht für weitere Verwirrungen. ;-)
Sollen sich alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen und nicht mehr davon erfasst haben als eine Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst.
-- Albert Einstein