======[PHP] three tier architecture====== =====Datenlayer===== Als ersts brauchen wir ein bisschen Code, der uns Daten zur Verfügung stellt. Hier mal was ganz einfaches ip = getenv(REMOTE_ADDR); $this->host = gethostbyaddr($this->ip); $this->refer=getenv(HTTP_REFERER); } public function getHost(){ return $this->host; } } ?> Simpel und als Klass natürlich so nur beschränkt sinnvoll. Doch darum gehts jetzt nicht. Die Datenlogik haben wir jetzt also zusammen. =====Applikationslayer===== Um diesen Layer sauber zu gestallten, verwendet man meist ein Templatesystem. In diesem Fall mach ich selber einen kleinen Parser. den stell ich dann in den Businesslayer. Als Platzhalter denk ich mir etwas aus, dass so nicht so schnell wieder auftaucht. {%varible%} soll als Platzhalter dienen Three Tier Architekture Willkommen zu diesem kleinen Test.
Du kommst von {%refer%}.
und {%host%} ist dein Host über den du im www surfst.
Deine IP ist {%ip%}
Natürlich kann an das noch mit CSS und allem drumm und drann ausschmücken. Doch wie kommen jetzt die Inhalte unserer Klasse clsclient in dieses Template? Dazu schreib ich mal kurz einen kleinen Parser. Dieser gehört zum Templatesyste. Normalerweise nimmt man etwas komplexeres, dass ein wenig mehr kann als nur Variablen ersetzen. Doch für dieses Beispiel reicht es aus. =====Businesslayer===== Genau. Dieser Layer verbindet alles miteinander. Er nimmt die Infos aus dem Datalayer, nimmt den Parser und das Template und schreibt am schluss mit einem einzigen Echo-Befehl die Ganze Seite. $agentInfo->ip, 'refer' => $agentInfo->refer, 'host' => $agentInfo->getHost(), ); // Template parsen und ausgeben echo parse($vars, 'tmpl.client.html'); ?> So einfach ist das. Der Businesslayer in einem Komplexeren Projekt, ist eigentlich nichts anderes als eine Datei, die nur noch Zuordnungen macht. =====Weitere Aussichent===== Tja, wozu ist es eigentlich nützue, dass an die Daten so universell macht? Nehmen wir mal ein Gästebuch. Die Datalogik ist immer dieselelbe. Nur das Layout will man anpassen. Dann ist es in diesem Fall genau eine Datei, die man mit HTML anpassen kann. Einfach und übersichtlich. Oder man will eine Seite mit verschiedenen Skins erstellen. Nix einfacher als das. Dubliziere die Templates und mache im Businesslayer eine Templateselektion hinein, dass er das richtige Template abholt... finish ist der Zauber. =====Links===== [[http://www.smarty.net/]] Dieses Templatesystem verwende ich. ist einfach zu handhaben und beitet sehr viel Möglichekeiten und besitzt eine hervorragende deutsche Dokumentation. {{tag>PHP Tutorial}}