Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Smarty ja oder nein ?

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
everflux
PostRank 8
PostRank 8
Beiträge: 939
Registriert: 01.05.2006, 17:15

Beitrag von everflux » 19.01.2007, 00:27

Mann die Ironie haste aber gut versteckt, beinahe dache ich, daß Du das ernst meinst. :)
https://everflux.de/ blogging about life, programming, seo and the net

Anzeige von ABAKUS

von Anzeige von ABAKUS »


Hochwertiger Linkaufbau bei ABAKUS:
  • Google-konformer Linkaufbau
  • nachhaltiges Ranking
  • Linkbuilding Angebote zu fairen Preisen
  • internationale Backlinks
Wir bieten Beratung und Umsetzung.
Jetzt anfragen: 0511 / 300325-0

Nullpointer
PostRank 10
PostRank 10
Beiträge: 4790
Registriert: 22.04.2005, 19:14
Wohnort: West Berlin

Beitrag von Nullpointer » 19.01.2007, 10:47

edvsb hat geschrieben: ...
Wenn ich die Daten doch per PHP vorher aufarbeite und dann an ein Template übergebe, dann brauche ich doch kein Smarty mehr dazu, dann reicht ein Textfile und str_replace().

Smarty ansich finde ich immer nur dann interessant, wenn das gleiche System viele verschiedene Darstellungen bekommen soll, aber bei einem individuell erstelltem System mit einem Design einfach unnötig.
....
Überlege Dir doch noch einmal, was Du machen möchtest. Wenn Deine Lösung so schlecht ist, dass sie nicht weiterentwickelt oder wiederverwendet wird, dann brauchst du vielleicht keine Tempaltes. Ich finde diesen Ansatz aber sehr kurzsichtig.

everflux
PostRank 8
PostRank 8
Beiträge: 939
Registriert: 01.05.2006, 17:15

Beitrag von everflux » 19.01.2007, 11:30

edvsb hat geschrieben: Mein Design kann ich schnell ändern und das Ergebnis kann gecached werden.
Das stelle ich keinesfalls in Abrede. Die Frage ist eben
a) kann das auch wer anders leicht ändern?
b) wird es auch gecached, oder sagst Du Dir "also wenn ich wollte, ich könnte" ;-) (das kenn ich noch vom Lernen für Klausuren)
c) es macht meines Erachtens schon einen Unterschied, ob ich meine Objekte einfach die "view" weitergeben kann, und die kümmert sich um alles, oder ob ich explizit selber eine Ausgabe generiere

Und unterm Strich:
Ich möchte mich auf den Teil einer Anwendung konzentrieren, der wirklich den Nutzen für den Auftraggeber (oder mich) darstellt. Ich möchte nicht noch eigenes Framework oder Template Gemansche warten, debuggen, pflegen und supporten müssen.
Deswegen greife ich eben gerne auf Frameworks oder Libraries zurück, die mir genau das abnehmen.
https://everflux.de/ blogging about life, programming, seo and the net

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


sfancy
PostRank 2
PostRank 2
Beiträge: 39
Registriert: 09.05.2006, 09:57

Beitrag von sfancy » 19.01.2007, 13:04

Und ich dachte immer PHP sei schon eine Templateengine :roll:

Code: Alles auswählen

<?php get_header&#40;&#41;; ?>
...
<?php while &#40;have_posts&#40;&#41;&#41; &#58; the_post&#40;&#41;; ?>
...
<?php get_sidebar&#40;&#41;; ?>
...
<?php get_footer&#40;&#41;; ?>
Genial einfach!


PS: Ist von Wordpress geklaut!

everflux
PostRank 8
PostRank 8
Beiträge: 939
Registriert: 01.05.2006, 17:15

Beitrag von everflux » 19.01.2007, 13:25

Ursprünglich war php auch genau dazu gedacht, und das merkt man noch an allen Ecken und Enden.
Wenn man eine richtige Anwendung mit PHP entwickeln möchte, bleibt einem aber nichts anderes übrig, als Programmierung von Darstellung zu trennen, und da braucht man dann eine vernünftige Lösung.
Für ne kleine Homepage wo ich vielleicht ein wenig dynamischen Inhalt rotieren lasse o.ä. würde ich auch kein Smarty anwerfen.
https://everflux.de/ blogging about life, programming, seo and the net

SloMo
PostRank 10
PostRank 10
Beiträge: 4880
Registriert: 04.01.2005, 18:26

Beitrag von SloMo » 19.01.2007, 13:44

everflux hat geschrieben:a) kann das auch wer anders leicht ändern?
Ist ja bei Smarty auch nicht der Fall. Schwer zu lesen und fern jedes Standards.

orbi
PostRank 1
PostRank 1
Beiträge: 12
Registriert: 18.10.2006, 16:43

Beitrag von orbi » 19.01.2007, 14:05

hi,
was ist denn an Smarty schwer? Das kann hier selbst jeder HTML-Designer. Und sobald man im Team arbeitet, muss man sich auf eine Trennung Programmierung / Darstellung einigen.

Wer ausschließlich alleine an seinen (nicht zu umfangreichen) Sites bastelt und sich mit PHP gut auskennt, der braucht sicher keine Template-Engine ...

everflux
PostRank 8
PostRank 8
Beiträge: 939
Registriert: 01.05.2006, 17:15

Beitrag von everflux » 20.01.2007, 12:21

Also das Smarty auf phpmailer zugreifen sollte treibt mir schon ein Stirnrunzeln ins Gesicht. Warum sollte Smarty das tun?
Aber ich nutze tatsächlich phpmailer sehr gerne um die Mailfunktionalität nicht selber implemnetieren zu müssen, hier ziehen im Prinzip die selben Argumente für mich, wie sie für Smarty als opensource Template Enginge gelten.
Aber ich würd hier fast meine Hand dafür ins Feuer legen, daß smarty von Haus aus keine weiteren Abhängigkeiten hat - wäre auch ziemlich unsinnige wenn die View auf die Datenbank oder gar auf Mails zugreifen....

Zum not-modified-header, den Smarty "definitiv nicht macht"
https://smarty.php.net/manual/de/variab ... .check.php

Warum sollte man ein opensource Projekt nehmen, in dem dauernd Sicherheitslücken gefixt werden?
a) Weil man sie sonst selber finden, fixen und das ganze System supporten müßte.
b) Weil später auch andere Entwickler mit dem Projekt arbeiten können ohne den großen Einarbeitungsaufwand in proprietäre Librarys

Ich glaube nicht, daß opensource tendenziell unsicherer ist, nur weil es "ständig angegriffen" wird. Es ist eben sehr attraktiv eine große Menge von gleichartigen Systemen anzugreifen. Windows ist kein opensource und wird auch ständig angegriffen.
StudiVZ ist ein ähnliches Beispiel - sicher war das auch kein opensource.

Verwendest Du also nach Möglichkeit für deine gewerblichen Projekte keine opensoure Produkte, um mehr Sicherheit zu bekommen?
Hast Du Dir dafür dann eine eigene Datenbank, einen eigenen Webserver oder gar ein eigenes Betriebssystem gebaut?
Wo willst Du die Grenze ziehen, was selber (teuer) entwickelt werden muß, damit es "sicherer" ist, als durch andere Leute begutachtete und gepflegte Software?

Ich glaube die Eigenentwicklung ist eine trügerische Sicherheit. Wenn man sich da nicht wirklich gut auskennt (und wenn ich mir nur anschaue, wie ich ständig neue Dinge dazu lerne....) kann man sich schneller ein Ei legen, als man denkt. Nur sagt es einem da keiner.
https://everflux.de/ blogging about life, programming, seo and the net

Airport1
PostRank 10
PostRank 10
Beiträge: 4489
Registriert: 16.08.2004, 18:50
Wohnort: Backnang / bei Stuttgart

Beitrag von Airport1 » 20.01.2007, 13:03

smarty ist leider - wie viele projekte - irgendwann zur eierlegenden wollmilchsau mutiert, sprich, ein koloss geworden (immer mehr anforderungen hielten einzug).

smarty moechte ich gar nicht angreifen, das macht seine urspruengliche sache hervorragend, bloss finde ich die entwicklung vieler projekte in richtung eierlegende wollmilchsau ziemlich erschreckend.. da geht mir jedesmal der hut hoch ;)

wuerde ich smarty nutzen, dann nur einen ganz kleinen teil von dem was es alles bietet (kann man fast schon mit word vergleichen, 1000 funktionen wovon man nur 3 nutzt..)

gilt jetzt nicht unbedingt fuer smarty, aber fuer die entwicklung vieler projekte richtung eierlegende wollmilchsau: je komplexer und langwieriger der programmab/durchlauf, umso langsamer. jedes if kostet laufzeit extra.. auch haben einige wie ich keinen bock 4 mb source code runter- bzw. hochzuladen, wenn man schlussendlich nur einen ganz kleinen teil der angebotenen funktionen nutzt, was man in 12 kb haette verpacken koennen ;)

WENIGER IST MEHR!!
Linktauschanfragen zwecklos
https://www.bot-trap.de/ Spamschutz fuer Webmaster - zentrale Meldestelle fuer Web Spam
https://www.airport1.de/blog/ Lombagruschd Blog mid Gardadierle
https://www.ranking-hits.de/ Counter & PR Service

Michael
PostRank 8
PostRank 8
Beiträge: 808
Registriert: 04.01.2004, 20:23
Wohnort: Herne

Beitrag von Michael » 20.01.2007, 15:22

Smarty ist eine geniale Template Engine.

Sie ist trotz des Funktionsumfangs sehr schnell und einfach zu benutzen.

Einfach genial - Ich liebe die Smarty Template Engine !!!

bloddy newbie
PostRank 4
PostRank 4
Beiträge: 171
Registriert: 18.05.2006, 20:15

Beitrag von bloddy newbie » 21.01.2007, 17:26

Hallo zusammen - eine nette Diskussion, die aber teilweise am Thema vorbei schießt.

Smarty ist aus meiner Sicht die beste Template Engine, die es für PHP gibt und ich habe schon einige andere - ja sogar selbst programmierte - Engines eingesetzt. Smarty ist im Vgl. zu den meisten anderen Engines sehr viel schneller und bietet dennoch mehr Funktionalität. Ob man sich nun der gesamten Funktionalität, die Smarty mit sich bringt, bedient oder eben nur die eigentlich notwendigen Funktionen einsetzt, steht jedem Entwickler frei.

Ich persönlich bevorzuge es einfache Logik in den Templates unterzubringen und Smarty bietet dahingehend alles was benötigt wird. Und mal ehrlich - wenn ein "HTML Designer" HTML und CSS beherrscht, sollten if, else und foreach wohl ein Kinderspiel sein. Das Argument der zusätzlichen Syntax zieht in meinen Augen leider mal überhaupt nicht. Smarty ist wie schon angesprochen sehr sehr verbreitet und auch daher ist die Sytax nicht wirklich etwas, wo man erstmal großartig in die Hände spucken müßte.

Um auf die Fragestellung zurück zu kommen - ja ich würde definitiv Smarty einsetzen, jedoch keine zusätzlichen Erweiterungen (wie eben phpmailer und so weiter - finde ich sowieso etwas sinnfrei dort den phpmailer (welcher übrigens für sich Klasse ist) zu integrieren, aber naja) in Smarty integrieren und darauf bedacht sein, die Logik im Template möglichst flach zu halten - eine 4fach verschachtelte Schleife geht im Template natürlich zu weit ;). Da Smarty Entwickler auf Abwärtkompatibilität bedacht sind, treten so bei etwaigen Updates auch keine Probleme auf.

Aus der Praxis heraus - ich bekomme von meinem Designer ein neues Template als CSS-Design...Mit Smarty dauert die Umstellung eine halbe Stunde ohne Smarty den ganzen Tag oder länger, da ich mich zunächst durch 1000e Dateien wuseln muß - ist mit anderen Template Engines aber auch kein Problem.

Ohne Template Engine geht bei einem Shopsystem in meinen Augen erstmal garnichts (zu OSCommerce schiel *wiederlich*, selbst XT-Commerce ist in meinen Augen noch nicht tief genug auf Smarty umgestellt).

bn

SloMo
PostRank 10
PostRank 10
Beiträge: 4880
Registriert: 04.01.2005, 18:26

Beitrag von SloMo » 21.01.2007, 19:53

Viele setzen hier die Trennung der Darstellung vom Code mit dem Einsatz von Smarty (oder anderen proprietären Template-Engines) gleich. Da dient Smarty IMHO dann meistens als Krücke für den unorganisierten Programmierer, der einen Syntax- und Dateiendungswechsel braucht, um Design und Code zu trennen. Man kann diese Trennung aber auch allein mit PHP realisieren.

Würdet Ihr einer Agentur die Templates zur Überarbeitung geben, und sie dann ohne Prüfung auf den Produktivserver laden? Ich bestimmt nicht. Das wäre bei PHP und Smarty gleichermaßen "risikofreudig". Wenn die Darstellung kaputt ist, ist auch das Projekt kaputt. Der Programmierer kommt also so oder so nicht drum herum, die Templates zu überarbeiten und auf Herz und Nieren zu prüfen.

everflux
PostRank 8
PostRank 8
Beiträge: 939
Registriert: 01.05.2006, 17:15

Beitrag von everflux » 21.01.2007, 20:02

Ich stimme Dir da voll zu, daß man alleine mit PHP alles mögliche realisiern kann. Smarty ist ja auch in PHP geschrieben ;-)
Natürlich gilt auch, daß man ein staging System in dem man seine Unit und Integrationstests laufen läßt, ehe man ein Produktivdeployment macht, hat.

Smarty bietet aber eben mehr als "nur" Trennung von Darstellung und Geschäftslogik (wenn es richtig verwendet wird).
Es biete eben auch caching, not-modified-header Behandlung und Template-Compilierung zur Geschwindigkeitssteigerung.

Ganz nebenbei erhält man ein vernünftig getestetes Subsystem, und spart sich durch die freundliche Arbeit der Smarty Programmierer eine Menge Zeit und Arbeit, und kann sich um das wirklich wichtige kümmern - das eigene Programm.
Und auch beim Debugging ist Smarty hilfreich - wer noch nie den Debug Mode ausprobiert hat, weiß garnicht, was er verpaßt.

Ich achte - besonders auch im Interesse meiner Kunden - darauf, nicht das Rad neu zu erfinden, wenn es getestete und stabile 3rd-Party Frameworks oder Libraries gibt, die mir Aufwand sparen. Und das darf auch ruhig Geld kosten, denn langfristig spart man.
https://everflux.de/ blogging about life, programming, seo and the net

SloMo
PostRank 10
PostRank 10
Beiträge: 4880
Registriert: 04.01.2005, 18:26

Beitrag von SloMo » 21.01.2007, 21:17

Nee, ich glaube Du verstehst nicht so richtig. Wozu ein Template-System benutzen, wenn die Sprache selbst ein sehr fähiges Template-System ist? Wozu ein zweites Caching-System, wenn die Sprache PHP das eh selbst erledigt? Am Ende ist Smarty nur so performant, weil es seine Templates direkt nach PHP übersetzt, und dann dort von den Compiler-Optimierungen profitiert. Diesen Übersetzungsprozess kann man sich sparen, wenn man sauber programmiert, und am Ende der Geschäftslogik seine darstellenden Skripte (aka Templates) aufruft.

> Ich achte - besonders auch im Interesse meiner Kunden - darauf, nicht das Rad neu zu erfinden, wenn es getestete und stabile 3rd-Party Frameworks oder Libraries gibt

Smarty mit der Erfindung des Rades zu vergleichen, halte ich für etwas überzogen ;)
Smarty ist ja eigentlich eine Neuerfindung des Rades, wenn man PHP im Hinterkopf hat.

everflux
PostRank 8
PostRank 8
Beiträge: 939
Registriert: 01.05.2006, 17:15

Beitrag von everflux » 21.01.2007, 21:38

PHP selber macht doch gar kein Caching? Wäre mir zumindest neu.
Klar, man kann (und sollte) mit Zend oder anderen Produkten Caching des Bytecodes realisiert werden, das ist jedoch auf einer anderen Ebene.

Bei Smarty hast Du den Vorteil, daß verschachtelte Templates (hat man ja häufig, ich sag nur "header", "footer") direkt in ein einzelne Datei kompiliert werden. (was dann unter anderem besser für Caches und weniger Festplatten-Seeks ist, aber mehr Platz auf der Platte braucht)

Wenn Du so argumentierst, dann wäre doch phpmailer statt der php mail() Funktion auch völliger Ballast und unnötig, ähnliches gilt für curl, Snoopy, Captcha Libraries, ADODB etc....
https://everflux.de/ blogging about life, programming, seo and the net

Antworten