php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.12.2011, 21:45  
Benutzer
 
Registriert seit: 11.05.2008
Beiträge: 71
PHP-Kenntnisse:
Fortgeschritten
prestige
prestige eine Nachricht über ICQ schicken
Standard [Erledigt] template system?!

Hi,

Ich könnte mal Hilfe oder besser gesagt einen guten Rat von echten Profis gebrauchen. Es geht um Templatesysteme.

Früher hatte ich smarty am laufen, hab es dann aber aufgegeben, weil viel schlechtes darüber berichtet wurde insbesondere auch aus Sicherheitsgründen. Und schliesslich kann reiner php-code ja auch für diesen Zweck gebraucht werden. Also habe ich dementsprechend eine Template-Klasse geschrieben, die alles included und Variabeln setzt (ohne regex&compilieren).

Neulich ist mir die Idee gekommen, dass ich für weitere Projekte auf nicht- als auch kommerziellen Basis ein System entwickeln möchte, dass Grundfunktionen beherrscht und sich leicht erweitern lässt.

Jetzt weiss ich aber nicht genau wie ich das Maximum ausschöpfen kann. Es wäre gut, wenn ich Code und Zeit einsparen könnte und das ganze leicht handzuhaben ist.

Ich habe mir das "Block"-System genauer angeschaut und einen Prototypen gecoded. D.h. alles ist oop und ist/wird in php geschrieben. Da ich nicht ganz auf HTML verzichten will, habe ich einfach gewisse vorgefertigten Elemente erstellt z.B. <form> , denen ich einfach mittels Funktionen Attribute und Text zuordnen kann (im Sinne von $tpl->assign()). Diese einzelnen templates füge ich dann zusammen zu einem Ganzen.

So, nun meine Fragen:

Die Meinungen der PHPler gehen ja teilweise arg auseinander. Meiner Meinung nach gibt es kein "falsch" sondern nur Vor- und Nachteile, die sich möglichst optimal auf seine Anforderungen/Wünsche anwenden lassen. Wie seht ihr das? Ich weiss nicht in welche Richtung ich gehen soll. Eigenbau oder vorgefertigte Engine? HTML Code mit PHP Code mischen oder alles komplett OOP lösen? Soll ich stur auf MVC setzen? Wie binde ich dann z.B. Plugins oder Addons am besten mit ein?

Die wichtigsten Aspekte sind für mich, der Wichtigkeit nach:

-> sehr gute Sicherheit, gute Übersichtlichkeit, einfache Anpassung/Modifizierung, keine grossen Performance-Einbussen.


Ich hatte schon viele Systeme angeschaut, wobei http://haanga.org/ sicher in den engeren Auswahl käme.

Was braucht ihr für Systeme und wo habt ihr gute/schlechte Erfahrungen gemacht. Im Endeffekt: Was lohnt sich auf mein Anforderungsprofil hin am besten?
__________________
Genau das wollte ich auch gerade sagen ^^
prestige ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 19.12.2011, 23:46  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
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

Wenn ich deinen Post richtig interpretiere, suchst du einen Template-Mechanismus, der dich in der OO-Implementierung als auch in der Abstraktion gewisser Funktionen und Konstrukte unterstützt (z.B. Formulare).

Sofern ich richtig liege, empfehle ich dir ein MVC-Framework zu nutzen. Schau dir hierzu mal das APF hinsichtlich des Templating und der Formular-Unterstützung an. Bei letzterem ist ein Formular nicht nur in seiner Generierung unterstützt, sondern auch hinsichtlich der Validierung/Filterung fix&fertig abstrahiert. Selbst schreiben hat immer den Nachteil, dass der Code nie in der Geschwindigkeit an Qualität erreicht wie du es gerne hättest.
__________________
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   Mit Zitat antworten
Alt 20.12.2011, 11:07  
Erfahrener Benutzer
 
Registriert seit: 26.11.2008
Beiträge: 264
dsentker befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Früher hatte ich smarty am laufen, hab es dann aber aufgegeben,
Eine weise Entscheidung!

Ein einfacher Ansatz ist hier beschrieben.
__________________
dsentker ist offline   Mit Zitat antworten
Alt 20.12.2011, 17:18  
Erfahrener Benutzer
 
Registriert seit: 25.05.2010
Beiträge: 852
PHP-Kenntnisse:
Anfänger
Trainmaster wird schon bald berühmt werden
Standard

Für höhere Anforderungen würde ich mir zusätzlich das Composite View Pattern näher ansehen. Somit können die Views ineinander verschachtelt werden. Eine gelungene Implementierung ermöglicht zudem, spezifische Templates an jeder Stelle der Applikation anzusprechen und ggfs. mit neuen Daten zu füttern. Möglicher Anwendungsfall: Title/Meta-Elemente während der Laufzeit dynamisch modifizieren.
Trainmaster ist offline   Mit Zitat antworten
Alt 21.12.2011, 10:42  
Erfahrener Benutzer
 
Registriert seit: 02.09.2009
Beiträge: 1.019
PHP-Kenntnisse:
Fortgeschritten
mquadrat befindet sich auf einem aufstrebenden Ast
Standard

Ich verstehe die Frage, ob du stur auf MVC setzen sollst nicht. Das Templating beschäftigt sich ausschließlich mit dem View. Ob da hintendran jetzt Spaghetti-Code, MVC, MVP oder MVVM steckt ist vollkommen egal.

Hab eich das korrekt verstanden, dass du deine Oberfläche komplett aus Objekten aufbaust, die dann wiederum über Templates/Skins das eigentliche HTML dynamisch generieren? In der Desktop-Entwicklung nennt sich das komponentenbasierte Entwicklung und ist der übliche Weg GUIs zu implementieren. Ich handhabe das bei meinem Framework auch so. HTML schreibe nur, wenn es nicht anders geht. Ansonsten bestehen meine Views aus verschachtelten Objekten (Composite-Pattern) .
__________________
Wir suchen PHP Entwickler (Vollzeit) im Raum Darmstadt / Rhein-Main. Infos via E-Mail mueller@new-frontiers.de
mquadrat ist offline   Mit Zitat antworten
Alt 21.12.2011, 12:50  
Erfahrener Benutzer
 
Registriert seit: 28.09.2008
Beiträge: 1.168
PHP-Kenntnisse:
Fortgeschritten
Koala befindet sich auf einem aufstrebenden Ast
Standard

@mquadrat
wie arbeitest Du mit Webdesignern zusammen ?

Die brauchen schließlich ne komplette, "normale" html-Seite um designen zu können.
__________________
Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.
Koala ist gerade online   Mit Zitat antworten
Alt 21.12.2011, 15:13  
Erfahrener Benutzer
 
Registriert seit: 02.09.2009
Beiträge: 1.019
PHP-Kenntnisse:
Fortgeschritten
mquadrat befindet sich auf einem aufstrebenden Ast
Standard

Die kriegen gesagt welche Elemente es gibt und dürfen dann basteln. Jedes Control kann je nach Template unterschiedliche Skins bekommen. Das gleiche Objekt kann also bei verschiedenen Seiten komplett unterschiedliches Markup erzeugen. Damit kann man fast alles erschlagen.

Alternativ nehmen wir das HTML und transformieren es selber bis es passt. Und ganz alternativ hören die Designer bei der PSD auf und wir setzen selber um.
__________________
Wir suchen PHP Entwickler (Vollzeit) im Raum Darmstadt / Rhein-Main. Infos via E-Mail mueller@new-frontiers.de
mquadrat ist offline   Mit Zitat antworten
Alt 22.12.2011, 09:15  
Erfahrener Benutzer
 
Registriert seit: 28.09.2008
Beiträge: 1.168
PHP-Kenntnisse:
Fortgeschritten
Koala befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Die kriegen gesagt welche Elemente es gibt und dürfen dann basteln.
Zitat:
Alternativ nehmen wir das HTML und transformieren es selber bis es passt. Und ganz alternativ hören die Designer bei der PSD auf und wir setzen selber um.
Wäre bei mir bzw. meinen Partnern so nicht umsetzbar.
Ich lade per ftp templates hoch die Sie dann ohne Rücksprache mal kurz anpassen können.
Aber gut - wenn das bei Dir so paßt.

Zitat:
Das gleiche Objekt kann also bei verschiedenen Seiten komplett unterschiedliches Markup erzeugen. Damit kann man fast alles erschlagen.
fast. Habt ihr denn bei allen Websites die gleichen Objekte ? Hört sich für mich nach Baukasten an.
Hab ich aber auch schon öfter mal sehen dürfen. Da wird dann ein Framework mit den gleichen Funktionalitäten
bei allen Projekten verwendet und maximal noch ein bißchen was hinzuprogrammiert.
Steigert natürlich die Produktivität, aber irgendwie fühlen sich dann alle damit produzierten Websites gleich an,
auch wenn Skins ausgewechselt werden. Hab leider gerade kein Beispiel zur Hand.

Hab gerade new-frontiers angesehn. Das geht natürlich in ne andere Richtung, da kommts eh nicht sooo sehr aufs Design an.
__________________
Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.

Geändert von Koala (22.12.2011 um 09:19 Uhr).
Koala ist gerade online   Mit Zitat antworten
Alt 22.12.2011, 10:09  
Erfahrener Benutzer
 
Registriert seit: 02.09.2009
Beiträge: 1.019
PHP-Kenntnisse:
Fortgeschritten
mquadrat befindet sich auf einem aufstrebenden Ast
Standard

Die Controls bei uns fangen auf HTML-Ebene an (z.B. Form-Objekte) und umfassen auch zusammengesetzte Elemente (z.B. Grids oder Panels inkl. überschrift). Somit kann man Standard-Elemente mit wenig Arbeit umsetzen. Für spezifischere Anforderungen können Views auch z.B. komplett ohne Objekte oder mit einem Misch-Masch ausgeführt werden. Das wichtigste ist halt für uns, dass wir den gleichen Kram nicht 20x entwickeln. Und wenn man sich die meisten Webseiten anschaut, dann findet man sehr oft von der Funktion her ähnliche Elemente.

Wir sind zwar vorwiegend im Anwendungs-/Intranet-Bereich unterwegs haben aber durchaus auch die ein oder andere Marketing-Seite dabei.

Wenn ich zwichen den Jahren mal dazu komme, kann ich ja mal ein bisschen Beispielcode basteln, dann wird es klarer.
__________________
Wir suchen PHP Entwickler (Vollzeit) im Raum Darmstadt / Rhein-Main. Infos via E-Mail mueller@new-frontiers.de
mquadrat ist offline   Mit Zitat antworten
Alt 22.12.2011, 11:10  
Erfahrener Benutzer
 
Registriert seit: 26.11.2008
Beiträge: 264
dsentker befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Koala Beitrag anzeigen
@mquadrat
wie arbeitest Du mit Webdesignern zusammen ?

Die brauchen schließlich ne komplette, "normale" html-Seite um designen zu können.
Wer sagt das? Warum dürfen Designer nicht auch etwas wie
PHP-Code:
<p><?php echo $author->getName(); ?> </p>
schreiben dürfen?
__________________
dsentker ist offline   Mit Zitat antworten
Antwort


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Template System programmieren Wolf66 PHP Einsteiger 23 20.05.2011 16:43
[Erledigt] Problem mit eigenem Template System! Nickstar PHP Tipps 2010 8 09.07.2010 16:12
Template System Ausgabe Knechtle PHP Tipps 2010 28 09.04.2010 11:04
[Erledigt] Template System Jens P. PHP Tipps 2009 17 04.01.2010 14:00
Template System -> View in PHP Floid PHP-Fortgeschrittene 12 22.11.2009 11:58
Template System Dominik PHP Tipps 2008 3 23.12.2008 09:46
Ausgabe im Template System nicht an vorgsehener Stelle Kein Genie PHP-Fortgeschrittene 7 21.04.2008 23:06
Template System oder Lösung gesucht PHP Tipps 2005 14 21.05.2005 22:07
Template System mit IF PHP Tipps 2005 10 06.05.2005 23:58
Vorschläge für eigenes template system! PHP Tipps 2005 2 14.03.2005 13:44
Template System tutorial PHP Tipps 2005 3 09.02.2005 19:49
Welches Template System? zwelch PHP Tipps 2004-2 1 18.11.2004 09:04
suche ein bestimmtes template system PHP Tipps 2004-2 2 07.11.2004 19:49
Smarty als Template System?! PHP Tipps 2004 16 22.07.2004 11:22
Smarty Template System: If Anweisung? PHP Tipps 2004 2 18.07.2004 19:31

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
templates system php, php template system eigenbau, php template system

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:46 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