php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack (2) Themen-Optionen Thema bewerten
Alt 01.07.2008, 23:57  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.654
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo DER_Brain,

Zitat:
Mal allgemein: Würdet ihr / würdest du mir also eher davon abraten, Smarty zu verwenden, und lieber meine eigene kleine (auch: weniger überladene) Template Klasse zu erstellen?
Ich kann hier RaZoR nur zustimmen, Smarty ist einfach nicht dafür ausgelegt so genutzt zu werden. Smarty ist für den Bereich gut, in dem es nur um einfaches Templating geht. Kommen Themen wie PageController, MVC und Verschachtelungen, die nicht mal in der Komplexität und Tiefe beschränkt sind hinzu, scheidet Smarty eindeutig aus.


Zitat:
Das mit dem generischen Parser würde mich schon interessieren, auch wenn ich ihn weder 1:1 verwenden will noch werde, aber als Ansporn bzw. Einstiegshilfe gut finden würde!
Ich hab dir zwar schon per PN geantwortet, allerdings will ich das Beispiel der Welt nicht vorenthalten. Auf diesem Konzept ist übrigens das APF aufgesetzt, beinhaltet jedoch noch einige Feinheiten mehr, die das Leben und Arbeiten einfacher und Effizienter machen. Die Grundzüge werden aber sicher schnell klar. Hier nochmal mein Text der PN in gekürzter Form:

Das Beispiel-ZIP unter http://adventure-php-framework.org/p...parser_dom.zip heruntergeladen werden. In der enthaltenen Datei findet sich die notwendigen Klassen und drunter ein Beispiel. Der Code ist nicht komplett dokumentiert, ist ja auch nur Pseudocode, damit klar wird, wie das eigentlich funktioniert. Wer ausformulierten Code möchte, einfach mal auf der Webseite des APF vorbei schauen und das adventure-codepack-*-Paket runter laden. In der Datei core/pagecontroller/pagecontroller.php befindet sich ein komplett dokumentiertes und ausformuliertes Beispiel. Die Features, die man damit realisiert werden können, sind unter http://adventure-php-framework.org/Seite/047-Templates und http://adventure-php-framework.org/Seite/006-Controller bzw. http://adventure-php-framework.org/S...eite-erstellen beschrieben.

Nicht ganz zum Thema aber interessant, für den, der das mal ausprobieren möchte:
Wer sich an der bisherigen (initialen) Konfiguration stört, das ist bereits in der Entwicklungsversion gelöst - sprich entfernt. Wenn jemand also ein Test-Release haben möchte, das mit der einfacheren Variante läuft, einfach unter http://adventure-php-framework.org/f...-php4_php5.zip das neue Package runterladen. Das Paket enthält gleichzeitig eine Beispielwebseite, das die ersten Schritte dokumentiert.

Solltest du noch Fragen haben, einfach fragen.

@RaZoR:
Zitat:
Mitlerweile bin ich wieder dabei Templates rein mit PHP zu schreiben. Ob ich jetzt eine Pseudotemplatesprache habe oder PHP Syntax verwende ist doch egal.
Nein! Eine Template-Sprache hat den entscheidenden Vorteil, dass DU für die Implementierung zuständig bist und der Anwender nicht jeden Mist in PHP in sein Template frickeln kann und hinterher der Code ächzend langsam ist. Zudem kannst du den Code formalisieren und damit die Möglichkeit der Abstraktion schaffen. Erst wenn du weg vom PHP-Code bist, sprich selbst von der PHP-Engine geparst wirst, hast du die Möglichkeit in das Template-Geschehen von aussen steuernd einzugreifen und generisch Module oder TagLibs oder was auch immer zu laden. PHP-Templates mögen zwar schnell sein, aber man muss wieder mit ob_start() & Co. arbeiten, dass der Output nicht direkt gesendet wird, was höchst unsauber ist. Dann schon lieber den DOM-Baum sauber im Speicher aufbauen, denn dann kann ein Knoten die Informationen eines anderen Knoten für seine Verarbeitung nutzen (siehe Formulare). Anders ist das ein wildes Gebastel und entbehrt jedweder Allgemeingültigkeit.

Zitat:
Und wenn du noch das ein oder andere Feature brauchst dann kannst du dir das eben schnell in PHP programmieren.
Genau da sind fangen wir dann an zu basteln und zu frickeln, weil jeder mal eben schnell was in das Template einbaut, was niemals wieder weiterverwednet werden kann, da man in einem anderen Template die gleiche Funktion nochmal basteln muss. Das hat dann definitiv nichts mehr mit gutem Softwaredesign zu tun. Sorry, aber gutes Software-Design ist nicht nur Performance!
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 02.07.2008, 17:09  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.654
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Nachtrag: unter http://www.phpfriend.de/forum/ftopic64004-s10.html wurde das Thema bereits diskutiert, hier kann sich der geneigte Leser sicher einige Informationen ziehen.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Alt 02.07.2008, 17:19  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von dr.e.
@RaZoR:
Zitat:
Mitlerweile bin ich wieder dabei Templates rein mit PHP zu schreiben. Ob ich jetzt eine Pseudotemplatesprache habe oder PHP Syntax verwende ist doch egal.
Nein! Eine Template-Sprache hat den entscheidenden Vorteil, dass DU für die Implementierung zuständig bist und der Anwender nicht jeden Mist in PHP in sein Template frickeln kann und hinterher der Code ächzend langsam ist. Zudem kannst du den Code formalisieren und damit die Möglichkeit der Abstraktion schaffen. Erst wenn du weg vom PHP-Code bist, sprich selbst von der PHP-Engine geparst wirst, hast du die Möglichkeit in das Template-Geschehen von aussen steuernd einzugreifen und generisch Module oder TagLibs oder was auch immer zu laden. PHP-Templates mögen zwar schnell sein, aber man muss wieder mit ob_start() & Co. arbeiten, dass der Output nicht direkt gesendet wird, was höchst unsauber ist. Dann schon lieber den DOM-Baum sauber im Speicher aufbauen, denn dann kann ein Knoten die Informationen eines anderen Knoten für seine Verarbeitung nutzen (siehe Formulare). Anders ist das ein wildes Gebastel und entbehrt jedweder Allgemeingültigkeit.
Wenn du externe Templateentwickler mitwirken lässt denen man nicht vertrauen kann ist eine eigene Templatesyntax sicher von Vorteil und man kann nur bestimmte Funktionen zu Verfügung stellen.

In den meisten Projekt arbeiten allerdings Designer und Entwickler Hand in Hand und es ist möglich PHP in Templates zu erlauben bzw. generell damit zu arbeiten.

Rein auf PHP basierende Templates lassen sich auch durchaus auch ohne ob_start() etc. realisieren indem der Aufbau und das Laden der Templates geschickt und in richtiger Reihenfolge gemacht wird.

Zitat:
Zitat von dr.e.
Zitat:
Und wenn du noch das ein oder andere Feature brauchst dann kannst du dir das eben schnell in PHP programmieren.
Genau da sind fangen wir dann an zu basteln und zu frickeln, weil jeder mal eben schnell was in das Template einbaut, was niemals wieder weiterverwednet werden kann, da man in einem anderen Template die gleiche Funktion nochmal basteln muss. Das hat dann definitiv nichts mehr mit gutem Softwaredesign zu tun. Sorry, aber gutes Software-Design ist nicht nur Performance!
Hierbei meinte ich eigentlich das Entwickeln von bestimmten Helpern die dann überall eingesetzt werden. Diese Helper werden natürlich nicht IM Template sondern separat entwickelt und nur im Template aufgerufen. Dies würde dann TagLibs oder Modulen gleich kommen.


Über Templatesysteme lässt sich ja bekanntlich viel diskutieren. Im Endeffekt entscheidet die Anwendung bzw. die Anforderungen an die Software. Ich denke dass sich unsere Ansätze nicht Grundlegen unterscheiden sondern du nur gerne eine eigene Syntax die PHP & Template trennt nutzt. Sicherlich interessant für ein Framework dass auf mehrere Anwendungen abzielt.
Flor1an ist offline  
Alt 03.07.2008, 08:57  
Erfahrener Benutzer
 
Benutzerbild von phpdummi
 
Registriert seit: 06.06.2008
Beiträge: 1.631
PHP-Kenntnisse:
Anfänger
phpdummi ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ohne mich in diese Diskussion unbedingt einmischen zu wollen:

Ich finde es einfach schöner bei einer Sprache/Syntax zu bleiben. Außerdem <core:import="tpl/subtpl.html" /> ist schnell mal eben hingeschrieben...

Das Document Object Model bietet viele hervorragende Möglichkeiten. Gerade bei Menüs oder anderen verschachtelten Elementen.
phpdummi ist offline  
Alt 03.07.2008, 11:25  
Erfahrener Benutzer
 
Benutzerbild von DER_Brain
 
Registriert seit: 18.04.2005
Beiträge: 1.541
PHP-Kenntnisse:
Fortgeschritten
DER_Brain ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wiederum ein Danke an euch alle!

Werd ma jetzt die Links von dr. e ansehen und auch das DOM Model genauer betrachten.

lg
Andi

PS: Kann man closen!
DER_Brain ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

LinkBacks (?)
LinkBack to this Thread: http://www.php.de/php-tipps-2008/46096-pagemanager-klasse.html
Erstellt von For Type Datum
Frage zu Templatesystem - Developer's Guide This thread Refback 23.11.2008 21:06
Frage zu Templatesystem - Developer's Guide This thread Refback 23.11.2008 18:09

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Variable aus Klasse herausbekommen GSJLink PHP Tipps 2008 7 16.02.2008 22:25
HTML Klasse ecomeback PHP Tipps 2008 6 31.08.2007 22:32
String-Parser Klasse - was muss rein? Matze PHP Tipps 2007 2 08.04.2007 22:14
mehr als eine Klasse einbinden Alpha Centauri PHP-Fortgeschrittene 4 13.04.2006 20:56
Instanz einer Klasse in SessionVariable PHP-Fortgeschrittene 2 21.02.2006 00:18
Klasenname einer nicht instanziierten Klasse DerDesian PHP Tipps 2007 9 30.11.2005 13:13
Instanz einer Klasse in einer anderen Klasse verwenden Buhmann PHP-Fortgeschrittene 7 28.10.2005 23:12
[Erledigt] Führerschein für Klasse A+B.. Preis OK??? Off-Topic Diskussionen 20 13.07.2005 18:44
Rückgabewert auf einer Klasse anders als in der Klasse micbur PHP Tipps 2005-2 6 10.06.2005 15:06
[Erledigt] Problem mit Übergabe einer Klasse in PHP4 PHP-Fortgeschrittene 10 08.01.2005 21:00
[Erledigt] Instanz bilden innerhalb einer Klasse PHP Tipps 2004 7 11.12.2004 12:58
Klasse holt sich die Klasse PHP-Fortgeschrittene 9 07.10.2004 11:53
[Erledigt] Brauche Hilfe bei meiner ersten Klasse PHP-Fortgeschrittene 9 24.09.2004 17:09
Klassenobjet in anderer Klasse benutzen inu PHP Tipps 2004 6 19.09.2004 10:58
Klasse ändern UniQ PHP Tipps 2004 5 24.08.2004 14:46

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
phperlauben pagemanager

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:17 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.