PHP Framework Yii 2.0 als Basis für unsere Entwicklungen
Yii 2.0 ist ein sehr schnelles, sicheres und professionelles PHP Framework. Mit Yii 2.0 können die Entwicklungsprozesse von Web-Anwendungen beträchtlich beschleunigt werden. Es ist gut gestaltet, hat eine ausgezeichnete Unterstützung und ist einfach zu pflegen.
Unsere Arbeit mit dem PHP Framework Yii 2.0
Es hat sich so ergeben, dass der Großteil unserer Projekte from-scratch Entwicklungen sind. Wir haben hier die Möglichkeit, die Technologien und die Tools selbst zu bestimmen. Aus einer Vielzahl an Gründen, die weiter auf dieser Seite zu finden sind, haben wir bei der überwiegenden Zahl der Projekte das PHP Framework Yii 2.0 als Basis gewählt.
Es sind mehrere unterschiedlichen Aspekte, die wir bei der Framework Wahl betrachten. Einerseits sind das rein technische Überlegungen – z.B. ob das Angebot der Funktionalität, Module die aus Pflichtenheft bekannten Anforderungen genügt oder auch ob das Framework genügend Performance bietet, um die erwartete Last auf das System zu verpacken.
Ein anderer Aspekt ist die „coding usability“ – Kann man mit einem Framework schnell Ergebnisse erreichen und in einem Team ein modulares System aufbauen, testen und debuggen?
Eine weitere nicht zu unterschätzende Frage – vor allem, wenn es sich um große Projekte handelt – ist, ob die Yii 2.0 Projekte, auch langfristig wartbar, flexibel und erweiterbar sind. Wird man das Projekt auch mit neuen Mitarbeitern fortführen können?
Erst mal vorab: Natürlich ist Yii 2.0 auch nur ein weiteres PHP Framework. Es gibt mit Sicherheit weitere Frameworks die ähnliche, oder auch andere Qualitäten mitbringen. Wir betrachten hier lediglich die Vorteile, die wir in Yii 2.0 sehen.
Grundsätzliche Anforderungen
- Funktionalität: Module, Tools vs Anforderungen
- Coding Usability: Kann man mit dem Framework gut arbeiten?
- Performance
- Sicherheit
- Maintenance / Wartbarkeit
Funktionalität
Yii 2.0 beinhaltet eine umfangreiche Bibliothek an Hilfsmitteln bereits out-of-the-box. Obwohl das Framework relativ jung ist, hat die Yii Community bereits viele weitere Komponenten entwickelt.
Eigenschaften / Features
- MVC, Namespaces, Composer, PHP 5.4
- DAO
- Formular Funktionalität für Bauen und Validieren von Formularen
- RBAC Authentifizierung
- Skinning and Theming
- APIs / Web services
- I18N & L10N (Internalization and localization)
- Caching
- Security
- Unit and functionality Testing
- Scaffolding / automatic code generation
- Gute third-party code Unterstützung
- Viele Erweiterungen
Es wird oft davon gesprochen, dass das PHP Framework Yii 2.0 ein professionelles „entersrise“ Framework ist. Mit den Grundfunktionalität und den Sicherheitsansprüchen, die Yii 2.0 mitbringt, stimmt das natürlich, bedeutet auf der anderen Seite / im Umkehrschluss nicht, dass das Framework für kleiner dimensionierte Projekte nicht geeignet ist. Von Overhead kann man wahrscheinlich nur reden, wenn es um die einigen zusätzlichen Megabyte Speicherplatz geht, die die Modul-Grundausstattung erfordert. Durch das Lazy-Loading Konzept werden zur Laufzeit ausschließlich die Komponenten geladen, die wirklich gebraucht werden. Auf die Performance haben die nicht verwendeten Module keinen Einfluss und können problemlos vom Datenträger gelöscht werden.
Entwicklungsgeschwindigkeit
In der Web-Entwicklung haben sich eine Reihe an Design Patterns etabliert, die von Projekt zu Projekt auf die gleiche Art und Weise verwendet werden. Yii geht hier einen Schritt weiter und stellt mit GII ein Scaffolding/Code-Generator Tool. Mit GII kann man über ein Web-Interface (alternativ auch über Konsole) schnell die Controller, Modelle (basierend auf einer DB-Verbindung) und auch voll funktionsfähige MVC-Bundels aus Controllern, Modellen, Templates für Standard Szenarios wie list, insert, update, delete erstellen. Mit diesem ausgenerierten, bereits funktionstüchtigen Code hat der Entwickler eine Basis für den weiteren Aufbau der Applikation-Funktionalität.
Für die Entwicklungsprozesse wie das Testing und Debuggen existieren bei Yii 2.0 Hilfsmittel. Gegenüber Yii 1.0 bringt die Version 2.0 eine sehr Umfangreiche Debugging-Hilfe über eine Toolbar im Browser. Debug-Trace, Belegung von Variablen, sonstige debugging-relevante Informationen können bei jedem Seitenaufruf der entwickelten App abgerufen werden.
Performance
Der interne Struktur von YII bereits in der Version 1.0 folgt dem Lazy-Loading Konzept. Mit Lazy-Loading werden die Komponenten nur dann geladen, wenn sie wirklich gebraucht werden. Das wirkt sich bei allen Webserver-Aufrufen positiv aus, bei denen nur eine Teilfunktionalität gebraucht wird. An dem folgenden Schaubild wird deutlich, dass ein Overhead bei anderen Frameworks existiert. Es wurde bewusst das „Hello World“ Beispiel genommen, welches keine umfangreichen Komponenten erfordert.
Mit der Yii 2.0 eigenen Caching Komponente sind solide Möglichkeiten out-of-the Box vorhanden, um die Web Applikation hinsichtlich der Performance weiter zu optimieren.
Das Caching von SQL Schemes, Model Caching, HTML-Template Caching kann teilweise einfach konfiguriert werden und erfordert keine weitreichenden Anpassungen im Code.
Community Support
Es gibt eine umfangreiche Dokumentation, eine große Community. Es gibt viele Foren, wo Yii-spezifische Themen ausdiskutiert werden.
Große IDE-Hersteller integrieren in ihre Tools wie PHPStorm Yii Unterstützung.