php.de

Zurück   php.de > Webentwicklung > Software-Design

Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene

Antwort
 
LinkBack (3) Themen-Optionen Thema bewerten
Alt 18.12.2008, 22:42  
Erfahrener Benutzer
 
Registriert seit: 26.05.2008
Beiträge: 196
PHP-Kenntnisse:
Fortgeschritten
[-UFO-]Melkor befindet sich auf einem aufstrebenden Ast
Standard Smarty und das MVC

Hallo zusammen!

Ich habe mir vor einigen Wochen das Buch PHP Design Patterns geholt. Zum Üben entwerfe ich gerade mein eigenes kleines Framework; ich weiß, man soll das Rad nicht neu erfinden, aber es macht Spaß und ist ne gute Übung, ob ich es auch wirklich im produktiven Einsatz verwende, mal sehen.
Jedenfalls wollte ich das ganze so entwerfen, dass ich die Möglichkeit habe, über verschiedene Template-Klassen die Daten entweder als HTML auszugeben oder z.B. als JSON oder XML um auch One-Page-Applications z.B. mit JavaScript oder Flex auf gleicher PHP-Basis entwerfen zu können.

Aber genug geschwafelt, kommen wir zum eigentlichen Thema: Ich arbeite in der Template-Klasse, die für die HTML-Ausgabe zuständig ist, intern mit Smarty als Template-System; einfach aus dem Grund, dass ich Smarty vor Jahren mal genutzt habe und mit anderen Template-System noch nicht gearbeitet habe.
Nun habe ich allerdings an mehreren Stellen gelesen, das Smarty dem MVC eher widerspricht. Die Frage die ich mir stelle ist: Wieso? Mir ist klar, dass Smarty eine große Auswahl an Funktionen besitzt, die mehr als nur den Aufgabenbereich der View erledigen können.
Allerdings sind bei den von Smarty bereitgestellten Modifizierern auch einige dabei, die ich ehrlich gesagt nicht missen möchte, wie z.B. die Möglichkeit, Strings zu kürzen. Natürlich könnte ich diese Dinge auch in PHP erledigen und - um beim Beispiel des Kürzens zu bleiben - nur die gekürzten Strings an die Template-Klasse zu übergeben, würde mir dann allerdings die Möglichkeit nehmen, diese in JavaScript/Flex zu bearbeiten und individuell zu handeln.

Daher sehe ich in Smarty eher vor als Nachteile, aber wahrscheinlich tappe ich völlig im Dunkeln...
Liebe Grüße

Melkor
[-UFO-]Melkor ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 18.12.2008, 22:47  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.048
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Zitat:
Nun habe ich allerdings an mehreren Stellen gelesen, das Smarty dem MVC eher widerspricht.
Hmm Du gibst Dir die Antwort selbst in den Sätzen danach.
Zitat:
Daher sehe ich in Smarty eher vor als Nachteile,
Die Aussage ist ja auch wertungsfrei. Advanced Templating und MVC sind beide sehr praktisch/sinnvoll, aber eben nicht wirklich zu vereinen.

Zitat:
entwerfe ich gerade mein eigenes kleines Framework
Na da bin ich gespannt. Wenn ich mir angucke, wie lange ich jetzt schon an meinem sitze.. Was auchnimmer klein bei Dir heißt.
Zitat:
Jedenfalls wollte ich das ganze so entwerfen, dass ich die Möglichkeit habe, über verschiedene Template-Klassen die Daten entweder als HTML auszugeben oder z.B. als JSON oder XML
Imho ist hierfür eher das Controlling bspw. der Frontcontroller zuständig. Direkt Templating würde ich das nicht nennen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 18.12.2008, 22:57  
Erfahrener Benutzer
 
Registriert seit: 26.05.2008
Beiträge: 196
PHP-Kenntnisse:
Fortgeschritten
[-UFO-]Melkor befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von nikosch
Advanced Templating und MVC sind beide sehr praktisch/sinnvoll, aber eben nicht wirklich zu vereinen.
Und genau das ist der Punkt, an dem es bei mir etwas hakelt.
Das es nicht gut ist, wenn das Template mehr als nur die View-Aufgabe übernimmt, aber wo genau sind da die Grenzen? Ich sehe da nämlich durchaus eine Möglichkeit, die Ausgabe möglichst variabel gestalten zu können, die sonst nicht gegeben wäre (wenn ich z.B. in JavaScript die ungekürzten Strings haben will und in HTML die gekürzten).
[-UFO-]Melkor ist offline   Mit Zitat antworten
Alt 19.12.2008, 00:47  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 34.048
PHP-Kenntnisse:
Fortgeschritten
nikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz seinnikosch kann auf vieles stolz sein
Standard

Zitat:
Das es nicht gut ist, wenn das Template mehr als nur die View-Aufgabe übernimmt, aber wo genau sind da die Grenzen?
Tja, das ist ne schwierige Frage. Dieser Artikel ist ganz gut: Application Logic Versus Template Logic - PHP articles and PHP tutorials - PHP 5, MySQL, PostgreSQL, AJAX, Web 2.0
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 19.12.2008, 10:12  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.629
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

Zitat:
Zitat von nikosch
Advanced Templating und MVC sind beide sehr praktisch/sinnvoll, aber eben nicht wirklich zu vereinen.
Einspruch euer Ehren! Das APF verfolgt genau diesen Ansatz. Auch wenn es bisher keine <if />-Tags gibt - bewusst, weil das eben zuviel Applikationslogik ist - kann mit den generischen Taglibs im Template-Bereich so einiges angestellt werden. zusätzlich dazu kann man gemäß dem H-MVC/APF-MVC sauber implementieren.

Zitat:
Zitat von Melkor
Daher sehe ich in Smarty eher vor als Nachteile, aber wahrscheinlich tappe ich völlig im Dunkeln...
Smarty alleine ist für MVC eher ungeeignet. Ich habe bisher keine Möglichkeit gesehen Controller in die Transformation eines Templates zu injizieren.

Zitat:
Zitat von Melkor
entwerfe ich gerade mein eigenes kleines Framework
Schau dir mal http://adventure-php-framework.org/Seite/047-Templates, http://adventure-php-framework.org/S...s#2-3-Template und http://adventure-php-framework.org/Seite/006-Controller an. Dort solltest du einige hübsche Sachen finden, die du out-of-the-box nutzen kannst ohne gleich ein ganzes Framework schreiben zu müssen. Letzteres ist übrigens auch nicht so ganz einfach...
__________________
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!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Geändert von dr.e. (19.12.2008 um 10:17 Uhr).
dr.e. ist offline   Mit Zitat antworten
Alt 21.12.2008, 14:57  
Erfahrener Benutzer
 
Registriert seit: 26.05.2008
Beiträge: 196
PHP-Kenntnisse:
Fortgeschritten
[-UFO-]Melkor befindet sich auf einem aufstrebenden Ast
Standard

Dank euch beiden für die Links
Werd mir das mal anschauen und zusehen, dass ich noch ein wenig was dazulernen kann.


Zitat:
Zitat von nikosch Beitrag anzeigen
Na da bin ich gespannt. Wenn ich mir angucke, wie lange ich jetzt schon an meinem sitze.. Was auchnimmer klein bei Dir heißt.
Klein heißt wirklich noch klein bei mir, im Moment sind es so um die 20 Klassen
[-UFO-]Melkor ist offline   Mit Zitat antworten
Alt 24.12.2008, 00:02  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.065
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von dr.e. Beitrag anzeigen
Einspruch euer Ehren! Das APF verfolgt genau diesen Ansatz. Auch wenn es bisher keine <if />-Tags gibt - bewusst, weil das eben zuviel Applikationslogik ist
Du verwendest keine Bedingungen in deinen Templates? Wie stellst du abwechselnd farblich hervorgehoben Datensaetze dar, wie negative/positive Werte rot/gruen etc.? Ich brauch sogar recht haeufig Bedingungen, und teilweise holt sich das View auch direkt Daten, z.B. Uebersetzungstexte. Das im Controller schon bereitzustellen ist ein unsinniger Overhead.
Chriz ist gerade online   Mit Zitat antworten
Alt 24.12.2008, 00:04  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.401
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Ich denke mal, das läuft über Taglibs.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline   Mit Zitat antworten
Alt 24.12.2008, 16:19  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.629
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

@Chriz:
Zitat:
Du verwendest keine Bedingungen in deinen Templates? Wie stellst du abwechselnd farblich hervorgehoben Datensaetze dar, wie negative/positive Werte rot/gruen etc.? Ich brauch sogar recht haeufig Bedingungen, und teilweise holt sich das View auch direkt Daten, z.B. Uebersetzungstexte. Das im Controller schon bereitzustellen ist ein unsinniger Overhead.
Sofern das nur eine einmalige und nicht wiederverwenbare Logik darstellt sollte der Controller verwendet werden, im Falle von mehrfach einsetzbaren Formatierungen läuft das über Taglibs (@Manko10: richtig!). Damit hast du die Flexibilität es so zu tun, wie dir beliebt und bist dadurch nicht eingeschränkt. Weiterhin hast du jedoch trotzdem die Möglichkeit, sauberes GUI-Softwaredesign zu betreiben. Die Kombination aus beidem ist für mich "Advanced Templating" und das Ziel, das jedes Template-System erreichen sollte.

Frohe Weihnachten,
Dr.E.
__________________
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 26.12.2008, 19:30  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.065
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Hört sich interessant an, ich hab das bisher nur mit ViewHelpern gemacht. Ist das ähnlich?
Chriz ist gerade online   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

LinkBacks (?)
LinkBack to this Thread: http://www.php.de/software-design/49930-smarty-und-das-mvc.html
Erstellt von For Type Datum
Literatur :: Adventure PHP Framework (APF) This thread Refback 28.05.2009 13:56
Literature :: Adventure PHP Framework (APF) This thread Refback 27.03.2009 17:17
Literatur :: Adventure PHP Framework (APF) This thread Refback 18.03.2009 21:17

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Smarty Templates & ZF KeKs0r PHP-Fortgeschrittene 6 24.12.2008 16:20
Smarty + MySQL = immer falsche Ausgabe m0use` PHP Tipps 2006 44 21.11.2008 20:30
Smarty: Templatedateien werden nicht aktualisiert! DER_Brain PHP Tipps 2008 9 24.04.2008 22:40
Problem mit Smarty ccfirefox HTML, Usability und Barrierefreiheit 1 25.10.2007 16:19
Was ist Aufgabe des Templates (Smarty), was nicht? agrajag PHP Tipps 2007 8 24.02.2007 13:19
Smarty => 1ste allgemeine Verunsicherung Canni PHP Tipps 2006 7 10.10.2006 17:56
Smarty + Oop Problem Komandar PHP Tipps 2006 5 25.07.2006 14:36
Smarty + Oop Komandar PHP Tipps 2006 17 30.05.2006 10:30
Smarty verschachtelt snatch-ic PHP Tipps 2006 16 28.02.2006 20:54
[Erledigt] Navigation auf Smarty umstellen?! PHP-Fortgeschrittene 3 10.01.2006 09:19
Frage zu Smarty PHP Tipps 2005-2 10 07.07.2005 14:49
Smarty Error Simon9990 PHP Tipps 2005-2 8 07.07.2005 09:34
Smarty und X-Cart Profis gesucht Beitragsarchiv 1 21.05.2005 13:38
[Erledigt] includepathproblem pear blockiert smarty und umgekehrt PHP Tipps 2005 1 08.05.2005 18:46
was ist schneller smarty, oder normaler php code? eQuin PHP-Fortgeschrittene 2 03.09.2004 11:51

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
smarty mvc, php mvc smarty, mvc smarty, mvc php smarty, mvc mit smarty, smarty nachteile, php smarty mvc, smarty php mvc, http://www.php.de/software-design/49930-smarty-und-das-mvc.html, model view controller smarty, mvc smarty php, mvc php, mvc smarty beispiel, smarty und mvc, smarty abwechselnd, nachteile smarty, mvc with smarty, php mvc, mvc und smarty, mvc mit php und smarty

Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 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