Diskussion "Template Engine" vs. "Framework"

Ok, aber was läuft denn nicht mehr? Beim Wechseln von 1.1 auf 2.0 gabs paar Sachen, die Probleme bereiteten, aber deswegen kannst die zu verwendende Version von ASP.net auch beim IIS einstellen.
 
Ich rede mehr über dot net. Hatte mal paar sinnvolle Applikationen in C# geschrieben, eine davon war mit den damals noch neuen managed Directx. Mittlerweile hat sich der Objekt baum komplett geändert.

EDIT. C# hat mir eigentlich sehr gut gefallen, zumal die Ähnlichkeit zu Java nicht zu übersehen ist.
 
Zuletzt bearbeitet von einem Moderator:
Die Frage die sich natürlich auch noch aufdrängt: Wer nutzt denn nun einfach nur eine "Template Engine" oder setzt eher auf ein Framework und dann natürlich, welche Template Engine / welches Framework verwendet man? Was waren die Gründe entsprechende "Software" einzusetzen?

Gut fänd ich natürlich, wenn dann alles mit pro/contra gegenüberstellen würden :) Das könnte für andere dann eine gute Entscheidungsgrundlage werden, was sie einsetzen wollen ;)
 
Für meinen Teil stimme ich grössten Teils mit Rasmus Lerdorf überein.
In viele PHP Frameworks wird soviel abstrahiert und gelayered, das einem schwindelig wird.
Ich stand vor einiger Zeit auch vor der Frage, ob ich ein "fertiges", ausgereiftes und sicheres Framework einsetze oder ob ich auf eine eigene Lösung zurückgreife.
Nachdem ich vor langer Zeit auch mein eigenes Framework angefangen und gemerkt habe, das ich schon fast jedes HTML Tag als Objekt vorliegen hatte, habe ich mich auf dem Markt der Frameworks umgeschaut. Das war die Zeit als das ZendFramework so langsam bekannt wurde. Doch die ganzen Frameworks sahen irgendwie alle identisch aus, alle waren sehr komplex und beinhalten für jeden Entwickler und für jede Situation eine Lösung. Das ist, als wenn ich ein Gerät habe, das fahren, fliegen und schwimmen kann ich aber nur 100m zum nächsten Briefkasten muss. Und dieses Gerät nimmt nicht den direktesten Weg, sondern schaut an jeder Kreuzung nochmal nach, ob man nicht auch da lang gehen könnte.

Ich kam für mich zu dem Entschluß, das die fertigen Frameworks, ob sie nun ZF, Cake, CodeIgnitor usw. heissen, völlig unbrauchbar sind.
Für jemanden, der vielleicht noch nicht so lange mit PHP arbeitet und seine Webseite aufbauen will, ist das ein netter Anfang. Ich würde aber nie auf die Idee kommen, ein eigenes Forensystem mit z.b. ZF umzusetzen.
Zum Beispiel diese umwerfende Abstrahierung des DB Layers. Natürlich sieht es "schön" im Source aus, wenn ich ein DB Select Statement via ZEND_DB_SELECT zusammenwürfeln kann, aber braucht man wirklich eine 40kb Datei dafür? (ZF v1.7) Das ist jetzt nur ein Beispiel für mehrere die mich gestört haben. Natürlich muss man DB_SELECT nicht nutzen, aber warum nehme ich dann ein Framework, wenn ich so Basis Arbeiten wie ein DB Layer dann nicht vollständig nutze?

Nun, ich habe es wirklich versucht, mich in die Docs eingearbeitet, dann sogar den Source vom Framework inspiziert um wirklich verstehen zu können, was passiert und ob ich das Modul auch so nutzen kann, wie ich es brauche. Die Zeitersparnis, die man ja mitunter durch ein Framework haben möchte, war bei mir gleich Null. Das mag daran liegen, das ich wissen möchte, was passiert im Hintergrund und nicht einfach Copy&Paste irgendwas aufrufe. Ein Bekannter sagte mir, man müsse das ja nur einmal machen, aber weiss ich in 3-4 Monaten wirklich noch etwas über den Code aus X Modulen den jemand anderes geschrieben hat? Auch die Wartungsfreundlichkeit fand ich eher bescheiden.

Ich habe dann doch wieder mein eigenes "Framework" angefangen. Das Framework besteht allerdings aus den grundlegenden Funktionen, die ich fast bei jedem Request brauche. Dazu gehören Config, Controller, DB, Model, Request, Router, Session und Views. Dabei habe ich auch nicht jedes Rad neu erfunden, sondern zum Beispiel mein DB Modul mehr als PDO Factory geschrieben, mein Request Modul beinhaltet die Filterfunktionen. Das reicht auch schon um gesicherte Abfragen mit UserInput gegen die SQL DB zu fahren.
Viele Module habe ich als Model der Applikation untergebracht und sind auch StandAlone nutzbar. Um bei dem Vergleich mit ZF zu bleiben: Ich glaube Sachen wie Currency, Feed, Paginator, PDF usw sind nicht Aufgaben des Frameworks, aber das ist nur meine Meinung.

Natürlich habe ich auf dem Papier nicht die Features wie bei den bekannten Frameworks und sicherlich wird noch das eine oder andere Basismodul hinzukommen. Aber bisher kann ich Anfragen sauber und sicher zum FrontController routeen in einem 80kb so called Framework. Das ist ein viertel der Dateigrosse, die beim ZF nur dem ControllerModul oder nur dem DB Modul entspricht. Ich muss hierbei auch nicht den Wünschen von 1-2 Millionen Programmierern nachkommen

Da hier auch die Templatediskussion mit aufkommt.
Ich denke das PHP alleine schon ausreicht. Warum sollte ich Monster wie Smarty auf PHP aufsetzen um dann ein einfachen HTML Code auszugeben? PHP bietet die Funktionen die man braucht. Natürlich habe ich HTML Code von PHP Code nicht 100tig getrennt, aber ich habe den Logik Code vom Ausgabe Code getrennt. Ob ich nun ein FOR Loop in Smarty Syntax oder PHP Syntax umsetze, spielt für mich keine Rolle.
Das Thema Caching kann man auch selber in ein paar Zeilen Code umsetzen und ist kein Hexenwerk, das ist für mich auch kein Grund.

Für mich ist somit das Thema TemplateEngine oder Framework seit einiger Zeit kein Thema mehr und ich kann eigentlich niemandem empfehlen auf Framework X oder Y zu setzen, sofern er etwas tiefergehende Kenntnisse hat.
Zeitersparnis und Revisionsfreundlichkeit konnte ich durch ein grosses Framework ebenfalls nicht feststellen, es war für mich eher das Gegenteil.
Das Thema Geschwindigkeit habe ich nicht angesprochen, da es für die meisten keine Relevanz hat. Wenn eine Webseite 5-10k Hits pro Tag hat, kann jedes Framework ob nun mit oder ohne APC das handhaben.

Bin gespannt auf andere Meinungen
 

Neue Beiträge

Zurück