phpbar.de logo

Mailinglisten-Archive

[php] verzeichnisse einbinden unter smarty

[php] verzeichnisse einbinden unter smarty

Olaf Gleba list at creatics.de
Mit Sep 29 00:36:38 CEST 2004


Hallo Daniel,

Am 28.09.2004 22:49 Uhr schrieb "Daniel Haller" unter
<daniel_haller at gmx.de>:
> sagen wir mal so:
> die kapselung in einer eigenen Klasse wird in dem Smarty-Manual
> beschrieben und auch in Carsten Möhrke's "Besser PHP programmieren".
> Da ich im Umgang mit Smarty 0 Erfahrung hab, dachte ich, ich halte mich
> mal an die Tipps ;-) Bin da aber offen...

Das Manual bezeichnet die Kapselung in einer extend Klasse als 'flexibel' im
Hinblick darauf, was in der Basis Installation beschrieben wird (Dort, wo du
in jeder Seite alle $smarty Konstanten (tpl, cache etc.) und die Hauptklasse
instanzieren musst).

Sinn macht die Kapselung dann, wenn es, wie im Manual Beispiel impliziert,
mehrere Applikationen mit jeweiligen Unterordnern geben soll (gästebuch und
weitere etc.) wie du in deiner Antwort an Michael beschrieben hast.

Wenn du eine flache Hierarchie hast, macht sie mE wenig Sinn, bzw. bringt
keine Vorteile. Auch keine in Hinblick auf guten Programmierstil.

> auf so eine Lösung bin ich jetzt auch verfallen:
> ich habe eine zentrale Datei, setup.inc.php,
> die ich bei jeder Seite zu Anfang einbinde.
> praktisch allein schon, weil ich da alles einbinden kann, was man so
> braucht - setlocale, andere Klassen, DB-Verbindung und und und ...

Ich würde (das allerdings nur am Rande) in die 'setup.inc.php' wirklich nur
das Setup reinsetzen (Das hat einfach was mit Übersichtlichkeit und
möglichst logischen Aufbau zu tun, s. Carsten Möhrke ;)).
Das gepostete Beispiel ist ja nur ein kl. Auschnitt, was du noch smarty
spezifische in dieser setup.php definieren kannst.

Andere tragende Klassen würde ich eher getrennt von dem Smarty Setup
behandeln. Z.B In dem du eine Basis Klasse hast (base.class.php) die im
Konstruktor Variablen bereitstellt und auch andere Klassen instanziert. Von
dieser Basis Klasse leiten sich dann die einzelnen Funktionsklassen ab (z.B
db.class.php; 'db extends base' ).
 
> Nur damit ich da richtig sehe:
> Von einer solchen Lösung hast du auch gesprochen, oder?

Ja, prinzipiell gleich...

gruss
Olaf


-- 
creatics media.systems : Grünstr. 25 : D-42697 Solingen
tel. +49 212 38 32 94 30 : fax. +49 212 38 32 94 31
mailto:og at creatics.de : http://www.creatics.de


php::bar PHP Wiki   -   Listenarchive