Einzelnen Beitrag anzeigen

generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#15

Re: PHP {Variable}

  Alt 24. Jul 2009, 12:16
Zitat von mquadrat:
Zitat von generic:
du solltest eine Templateengine nehmen, das ist performater als ein Replace.
Wieso? Jede Template-Engine, die selber auch in PHP geschrieben ist verwendet doch die gleichen Befehle zum Suchen und Ersetzen. Teilweise wird noch ein interner DOM aufgebaut.. Also performanter kann das nicht sein. Aufgrund des Abstraktionsaufwands würde ich sogar eher auf langsamer tippen (hab jetzt allerdings keine Benchmarks). Wenn man dann noch mit Sub-Templpates arbeitet wird's richtig langsam.
Nein, Nein und Nein.

Klar gibt es nicht optimale Lösungen, das sind auch genau die, welche du erwähnst.

Smarty in diesem Beispiel ist anders.

Smarty nutzt auch Templates und baut diese irgendwie zusammen. Das macht jede Templateengine.
Die Templates sind auch eigentlich nur für den Designer, damit dieser designen kann und sich nicht mit PHP Code rumärgern muss. Templateengines helfen dir auch, deinen Code sauber von der Anzeige zu trennen. Ergebnis ist besser wartbarer Code.

Smarty erzeugt aus einen Template PHP Code, welcher zwischen gespeichert wird.
Das hat viele Vorteile! Das Parsen des Templates entfällt (es sei den das Template hat sich geändert) und das in PHP vorliegende Template kann über APC oder ZendOptimizer weiter optimiert werden, da der "PHP-Compiler/Parser" nicht mehr aufgerufen werden muss.

Dadurch ist Smarty flink.

Du gewinnst durch Templateengines noch vieles mehr.
Du kannst viel leichter deine Ausgaben steuern, formatieren und umwandeln.
Natürlich kannst du auch einfach den Output Cachen, was zu weiteren Geschwindigkeitsvorteilen führt.

"Abstraktionsaufwands" vs "Wartbarkeit und Wiederverwendbarkeit"
Die meisten Systeme und Frameworks setzten inzwischen auf das MVC Pattern.
Du kannst aber auch schmale Lösungen wählen.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat