Guten Morgen,
da hier viele irgendwelche Werke basierend auf ihrem selbst geschriebenem Pseudo-Framework veröffentlichen, möchte ich heute mal ein bisschen Aufklärung leisten.
Was ist ein Framework?
Übersetzen wir uns zuerst den Begriff "Framework" - das heißt so viel wie Grundgerüst. Ein Framework soll also ein Grundgerüst sein, auf dem man eine Anwendung mit einer festgelegten, möglichst wiederverwertbaren, Struktur aufbauen kann. Das mag zwar sehr abstrakt klingen, doch genau das ist das Gute daran.
Es gibt viele verschiedene Frameworktypen, ich gehe hier auf Application Frameworks ein, und vor allem verschiedene Strukturmuster, zum Beispiel das in der PHP-Community sehr bekannte und beliebte (H)MVC-Muster ((Hierarchical) Model View Controller), auf das ich im weiteren Verlauf genauer eingehen werde.
Warum sollte man ein Framework nutzen?
Die Vorteile eines Frameworks liegen auf der Hand.
- kürzere Entwicklungszeiten -> schnellere Ergebnisse (auch wenn man vorher eine längere Einarbeitungsphase hat)
- sauberer Code und Struktur (ist natürlich nicht garantiert, man kann auch mit einem Framework schlechten Code fabrizieren)
- leichter erweiterbar
- stabilere Basis
Was ist das MVC-Pattern?
MVC steht für Model View Controller, das heißt, man teilt die Anwendung in drei Hauptteile, den Daten-Teil (Model), den Anzeige-Teil (View; meist ein Template) und den Verarbeitungs-Teil (Controller), auf. Wie genau diese Teile zusammenhängen und miteinander agieren, würde jetzt zu weit führen, eine kleine Google-Suche sollte für Interessierte allerdings drin sein.
Was macht ein gutes Framework aus?
Ein gutes Framework sollte einige Kriterien erfüllen:
- eine gute, klare Struktur besitzen, möglichst an den PSR-1 (und PSR-0) Standard angepasst
- eine saubere Codebasis besitzen (möglichst PSR-2)
- decoupled, also entkoppelt, auf Komponenten basiert
- leichte Anpassbarkeit/Ersetzbarkeit der Komponenten an die Bedürfnisse via DI (Dependency Injection) (Modular)
- leichte Erweiterbarkeit durch Plugins/Module/Bundels/... (Modular)
- leistungsstark
Welche Frameworks erfüllen diese Kriterien (größtenteils)?
Die hier genannten Frameworks sind nur Beispiele, es gibt natürlich noch mehr, die die oben genannten Kriterien erfüllen.
Modulare full stack Frameworks
Micro Frameworks
- Slim 2
- Silex
- YOLO PHP (zwar zum produktiven Anwenden weniger geeignet, zeigt aber sehr gut, was im Hintergrund abläuft)
- Bullet PHP
- Flight PHP
- Fat Free Framework
Das richtige Framework für den richtigen Zweck
Was für ein Framework sollte man nun also nutzen? Das kommt ganz auf die Anwendung an.
Für kleine Projekte empfehlen sich generell Microframeworks, da sie kleiner sind und eine geringere Einarbeitungs- und Vorbereitungszeit benötigen. Außerdem sind die meist schneller, weshalb sie für APIs besonders gerne eingesetzt werden.
Für große Projekte sollte man auf Fullstack Frameworks zurückgreifen, da sie einfach einen größeren Funktionsumfang bieten.
Welches Framework man letztendlich nutzt, entscheidet man selbst, alle haben Vor- und Nachteile.