Kurze Frage zu Template Tutorial

nchristoph

Erfahrenes Mitglied
Hallo zusammen,

beim Durchstöbern von den Tutorials bin ich auf ein für mich Interessantes Tutorial gestossen und habe jetzt einige Fragen dazu.

Templatesystem Klassen

Meine Fragen dazu:

1. Wenn ich jetzt eine Index.php habe und eine Erweiterung für die Seite schreiben möchte z.b. suche.php, muss ich dann beim $cat array auf die suche.php oder auf die suche.tpl verweisen?

2. Muss der Template Aufruf in der Suche.php oder in der Index.php stattfinden?

Es steht zwar geschrieben:

Somit ist es möglich in jeder Datei zb. (modules/test.php) eine x-Beliebige datei zu erstellen.

aber so schlau werd ich daraus nicht und dadurch entstehen meine 2 Fragen.

mfg
 
Ehrlich gesagt ist die Template Klasse nicht wirklich gut, die scheint von einen PHP Einsteiger geschrieben worden zu sein, da noch der ein oder andere Fehler drin steckt und es vieles gibt was man besser und performanter hätte lösen können.

Ich glaub es wäre besser wenn du nach einer anderen Klasse suchst.
 
Ich bin zwar schon ein alter Hase bei PHP aber trotzdem noch Grün hinter den Ohren bzw. extrem eingerostet bei gewissen Gebieten.

Templates ist ein Gebiet wo ich extrem Grün bin:P

Hast du einen Tip bezüglich Templateklassen?
 
Jetzt mal unter uns: PHP ist bereist ein gutes Template-System. Man muss sich nur dazu hinreisen, endlich mal Präsentation von Logik zu trennen. Ein guter Weg ist beispw. die Logik-Scripts mit der Endung .php und die Präsentations-Scripts mit der Endung .phtml zu kennzeichnen.

Ich bin ein starker Verfechter der Design-Patterns und gerade beim Trennen von Logik und Präsentation kann man hier in prima Entwurfsmuster empfehlen: MVC (Model-View-Controller). Wenn du mehr darüber wissen willst, frag nach.

Es ist nur ein Vorschlag, etwas professioneller an die Sache ran zu gehen. Für viele ist es gewöhnungsbedürftig bis unverständlich.
 
Für viele ist es gewöhnungsbedürftig bis unverständlich.

Für mich z.b.:P
Heist das, dass ich mir das ganze Programmieren der Klasse sparen kann wenn ich die html Dateien in phtml umbennen?

MVC werd ich gleich mal googlen.

Achja: Meine Frage hat trotzdem keiner beantwortet:P
 
Zuletzt bearbeitet:
Normalerweise konfiguriert man seinen Webserver so, das er .php-Dateien an den PHP-Parser übergibt. Wenn man jetzt in einem PHP-Script einen include() auf eine .phtml-Datei einfügt, wird diese phtml-Datei ganz genauso geparst wie ein .php-Script. Sogar eine .html-Datei würde wie ein PHP-Script geparst, wenn man sie über include() in ein PHP-Script einbindet.

Von daher bin ich der Meinung, das diese Sache mit den ganzen zusätzlichen Template-Engines nur vergeudete Rechenzeit ist. Hier mal ein einfaches Beispiel:

news.php - wäre jetzt mal unser Controller
PHP:
$news = array();
$news[] = array('title' => 'Überschrift der ersten News', 'text' => 'Irgend ein beliebig langer Text, der den Inhalt der ersten News wider gibt.', 'date' => '2011-10-10 19:00');

$news[] = array('title' => 'Überschrift der zweiten News', 'text' => 'Wahnsinnig interessanter Text in der zweiten Schlagzeile.', 'date' => '2011-10-11 19:00');

// ... weitere Nachrichten - könnt auch aus einem XML-File oder eine Datenbank kommen.

include('presentation/news.phtml'); // um Aussehen von Programm-Code zu trennen

presentation/news.phtml - Das Präsentationstemplate für die News
PHP:
<table class="news">
<?php foreach($news as $single_news): ?>
  <tr class="news_header"><td><?php echo $single_news['title']; ?> vom <?php echo $single_news['date']; ?></td></tr>
  <tr class="news_body"><td><?php echo $single_news['text']; ?></td></tr>
<?php endforeach; ?>
</table>
 
Also eine Templateklasse ist schon etwas sehr hilfreiches allerdings nicht die oben genannte. Dort hätten es auch 2 include Anweisungen getan.

MVC wende ich für die Extensions an, die die Ihnalte generieren die dann in die Platzhalter des Template geschrieben werden.

Achja: Meine Frage hat trotzdem keiner beantwortet:P
  1. Je nachdem wie du die Unterseiten nennst, empfehlenswert wäre php statt tpl.
  2. index.php?id=(id des Array Elementes) Zugriffe auf suche.php solltest du blockieren.
 
Ok ich hab das jetzt mal versucht, hat ja lange genug gedauert:P

Mit MVC komm ich nicht wirklich zurecht, hab immer irgendwelche Warnings und Errors.

Kann mir wer eine gute Templateklasse sagen?

Hab versucht, PHP als Templateengine zu verwenden, wird aber mit der Zeit zu unübersichtlich und ist irgendwie Sicherheitstechnisch unsicher. Fragt mich nicht wieso.
 
PHP ist die Template-Engine :-)

Smarty ist gut gepflegt und hat eine grosse Community.

Ich persoenlich verwende aber ohnehin ein komplettes Framework: Zend.

Ich verstehe nur nicht, warum ein zusaetzliches Script sicherheitstechnisch besser ist oder irgendetwas uebersichtlicher macht.
 
Ui dachte nicht, das während der Feiertage einer Antwortet.

Ich verstehs auch nicht: Wenn ich denselben HTMLCode in z.b. einer Whileschleife ausführe ist die Dateisicher, wenn ich die Templatedatei aber include, dann is es unsicher.

Ich werds mal versuchen ob ich mit Smarty was hinkrieg ansonsten werd ich wohl den Code in den PHP Dateien lassen.

Alsdann: Frohes Fest im nachhinein.
 
Zurück