Buch gesucht, OOP / Templates

Leomuck

Mitglied
Hi,

ich wollte mich in den Sommer-Ferien an einem etwas ausgeprägteren CMS (zur Übung, nicht zu kommerziellen Zwecken) probieren.

Bei den Sachen, die ich bisher gemacht habe, was so etwas eigentlich nicht nötig, aber für das geplante würde ich ganz gerne mit Templates arbeiten, möglicherweise OOP anwenden.

Nun kenne ich mich mit beidem nur wenig aus, soviel wie in meinem allgemeinen Webprogrammierungs-Büchern dazu steht und das ist leider nicht sonderlich viel.

Ich möchte den Umgang mit beidem lernen und würde dabei ganz gerne auf ein Buch zurückgreifen, bisher habe ich aber nichts gefunden.

Kann mir jemand ein Buch empfehlen, was das Thema "Templates in Verbindung mit PHP" und "OOP in PHP" gut umfasst, Basis- wie auch Fortgeschrittenenwissen vermittelt?

Danke für eure Antworten, Leander :)
 
Zum Thema OOP hab ich das hier gefunden: http://www.amazon.de/PHP-für-Fortge...3764135-4365313?ie=UTF8&qid=1183308104&sr=8-8

Hab es selbst noch nicht gelesen, aber die Kunden-Rezessionen sind ganz brauchbar.

Zum Thema Templating: Hier hab ich keine allgemeinen Bücher gefunden nur was zum Thema Smarty: http://www.amazon.de/Smarty-PHP-Tem...ie=UTF8&s=books-intl-de&qid=1183308365&sr=8-2

Auch das hab ich nicht gelesen. Leider hat es keine Kunden-Rezessionen, daher sind die 30€ riskant angelegt. Allerdings denk ich, das man ohnehin durch Benutzung der Smarty-Doku die gleichen Ergebnisse wie mit einem Buch erzielen kann.
 
Ersteres klingt ja ganz gut, jedoch bin ich eigentlich auf der Suche nach einem Buch, was beide Themen umfasst, wobei ich die Hoffnung fast aufgegeben habe. Notfalls werde ich mir ein PHP / OOP-Buch kaufen und auf die Doku setzen, wobei die ja für blutige Anfänger schon ein wenig hochgegriffen ist. Mal schauen.

Zu dem Smarty-Buch, darauf bin ich bei Amazon auch schon gestossen, jedoch scheint das Buch auf Englisch und das bringt mir dann relativ wenig. Ich verstehe zwar das meiste, aber das macht das Ganze nur schwerer. So ein Thema zu verstehen ist schon schwer genug für mich, dann noch in Englisch, das erleichtert die Sache nicht gerade.

Kurze Zwischenfrage:
Ich habe vor, mich an einem Clan CMS zu versuchen. Es wird von mir in ein bestehendes Design angebaut, es wird keinerlei Style-Möglichkeiten geben für den Administrator. Das heißt, er kann den Style nicht verändern, lediglich den Inhalt (News, Polls, Wars, usw.). Auch gibt es keine Einstellungsmöglichkeiten für den Admin. Da ich das CMS in ein eigenes Design (zu Testzwecken) einbauen möchte, gibt es da keinerlei Möglichkeiten für den Administrator, daran was zu verändern. Lediglich den Inhalt -> Content Management System.

Sind für ein solches System Templates überhaupt notwendig btw. empfehlenswert? Ich fühle mich derzeit ein wenig "überfragt", wenn ich an Templates denke.
 
Zuletzt bearbeitet:
Sind für ein solches System Templates überhaupt notwendig btw. empfehlenswert? Ich fühle mich derzeit ein wenig "überfragt", wenn ich an Templates denke.

Es kommt ganz darauf an, wie weit du gehen willst:
PHP ist "an-sich" schon eine sehr gute TemplateEngine, als kleiner Vergleich:

Smarty:
PHP:
Hallo, es ist {time} Uhr.
PHP:
PHP:
Hallo, es ist <?php echo($time); ?> Uhr.
oder kurz: (hoffe mal, das stimmt so...)
PHP:
Hallo, es ist <?=$time ?> Uhr.

TemplateEngines sollen Code vom Design - mit richtigem Einsatz von CSS eher Code von "der Seiten Struktur" trennen. Allgemein, wenn du nicht zu viele Tabellen benützt, sondern alles in ein-zwei Div's verpackst (kein Div-Chaos), kann man per CSS extrem viel herausholen (da kann man schnell auch das Design ändern).
Aber ob es nötig ist - ja, ich denke, es ist immer Vorteilhaft mit einer TmplEng zu arbeiten, vorallem für den Überblick im Code und allfälligen Wartungs/Erweiterungs-Arbeiten, schon bei kleineren Projekten.
 
Die Trennung von PHP und HTML / CSS klappt aber doch auch wie folgt ganz gut (?):

PHP:
<html>
[...]
<?php include 'inhalt.php'; ?>
[...]
</html>
 
auf jedenfall...

außerdem könntest du auch die eine einfache Templatefunktion erstmal bauen wenn du nicht viele sachen im template ersetzten musst.

Etwa nach dem Schema:
PHP:
function template($text)
{
global $title, $name;
// Sagen wir mal du willst nur titel und name ersetzten
str_replace('{title}', $title, $text);
str_replace('{name}', $name, $text);
}

// Anwendung:
$text = 'Der {title} ist von {name} erstellt.';
$title = 'Bla';
$name = 'Ass';
template($text);
echo $text;

// Müsste "Der Bla ist von Ass erstellt." ausgeben
// Habs aber nicht getestet!

So eine Template funktion die so wenig kann lohnt sich fast schon ab 10 ersetzten variablen nicht mehr wenn nicht schon früher ;) (gibt vieeel bessere Lösungen!)
Du kannst aber auch mal nach einer eigenen Template Klasse suchen nach einer Anleitung. Weil wozu brauchst du ein Buch für Geld wenn du deine Anleitung auch hier auf solchen Seiten bekommst?

Gruß suf*****
 
Statt mit global zu arbeiten, würde ich lieber mit einem Array arbeiten.

Eine kleiner Anstoß:

PHP:
function template($text, $vars = array()) 
{

	for($i = 0; $i < count($vars); $i++) 
	{  
		$text = str_replace("{".key($vars)."}", current($vars), $text);
		next($vars);
	}
	
	return $text;

}

$string = "Hallo {name}, es ist {uhrzeit}";

$vars['name'] = "hans";
$vars['uhrzeit'] = "12:00";
echo template($string, $vars);

ALLE Variablen die nicht von dir gesetzt werden, sollten natürlich validiert werden (z. B. Formulareingaben).
 
Guckt doch bitte mal den Beispiel-Code, den ich gepostet habe. Was ist an dem schlechter an als Templates?

Code und Design sind voneinander getrennt..ich sehe bisher keinen wirklichen Vorteil in Templates, welcher mich dazu verleiten könnte, diese zu benutzen.
 
1. Du hast nicht PHP-Code von HTML getrennt. Sobald beides in einer Datei drin ist, ist die Trennung nicht vorhanden. Und include ist definitv ein PHP-Befehl.

2. Wenn du der Meinung bist, das Templates nicht notwendig sind, warum willst du dann ein Buch dazu?

Trennung von Funktions- und Präsentationslayer hat Vor- und Nachteile::

+ Du lädst ein Template in alle PHP-Scripts die du hast, wenn du Änderungen am Design vornehmen musst/willst, änderst du es an einer Stelle, es werden alle Seiten angepasst.
+ Dein Code ist wesentlich leichter wartbar, weil übersichtlicher

- Das Entwickeln einer Template-Engine ist aufwendig
- Das Verwenden von Templates kostet natürlich etwas Zeit für das Laden und Parsen

Du musst für dich selbst entscheiden, was für dich sinnvoller ist.
 
Und wie formatierst du inhalt.php?
Da musst du doch auch wieder HTML verwenden und somit ist dein Vorschlag, meiner Meinung nach, nicht ganz brauchbar (es sei denn ich habe es falsch verstanden).
 
Zurück