Leichtgewichtigkeit mit Performanceboost

Serie: PHP-Frameworks Teil 5 - Code Igniter

Die Initialzündung für bessere Code-Ergebnisse möchte das Framework Code Igniter liefern. Dabei legt es weniger Wert auf vollständigen Funktionsumfang, sondern eher auf Leichtgewichtigkeit und Performance.

PHP-Frameworks Teil V - Code Igniter

© Archiv

PHP-Frameworks Teil V - Code Igniter

Code Igniter stellt wie die meisten PHP- Frameworks den MVC-Ansatz in den Vordergrund. Das Vorbild Ruby on Rails wird sogar ausdrücklich in der Dokumentation genannt. Allerdings hebt sich die Philosophie von Code Igniter doch deutlich von einigen anderen Frameworks ab.Ellis Lab, verantwortlich für die Entwicklung von Code Igniter, stellt vor allem die Geschwindigkeit in den Vordergrund. Performance-orientiert und leichtgewichtig sind die wichtigsten Attribute, die sich auch direkt auf der Homepage () herauslesen lassen.

Außerdem legt das Projekt großen Wert auf eine gute Dokumentation und den einfachen Einsatz des Frameworks. Man sieht hier, dass Code Igniter ursprünglich für die eigenen Projekte von Ellis Lab entwickelt wurde und auch für größere Projekte zum Einsatz kam und kommt.

Der pragmatische Ansatz macht sich auch an einigen anderen Stellen bemerkbar. Code Igniter läuft aktuell in der Version 1.7.1 auch noch mit PHP 4.3.2 oder alternativ mit PHP 5. Die Abwärtskompatibilität mit PHP 4 hat aber natürlich gerade im Bereich Objektorientierung einige Nachteile. Hier soll - vor allem wegen der Performance - für Version 2 die komplette Umstellung auf PHP 5 erfolgen.

Die zweite Eigenheit von Code Igniter ist die Lizenz (). Obwohl es sich dabei wohl in den Kriterien um eine Open-Source-Lizenz handelt und auch die Dokumentation sie als "Apache/ BSD-style open source license" bezeichnet, ist sie keine der offiziellen und bekannten Lizenzen.

Ellis Lab lässt sich ein wenig mehr Rechte für die Nennung einräumen. Nichts davon sollte juristisch problematisch sein; dennoch wäre es schöner, den Code unter einer offiziellen Lizenz zu vergeben. Und selbst, wenn es wirklich eine eigene Lizenz sein muss, sollte diese von der Open Source Initiative () abgesegnet sein.

Einrichtung

Code Igniter besitzt als zentrales Element ein einfaches URL-Konzept. Standardmäßig wird die Datei index.php mit in die URL eingebunden. Mit der Rewrite-Engine des Apache lässt sich das allerdings per .htaccess-Datei ändern. Standardmäßig wird folgender Aufbau vorgeschlagen:

RewriteEngine on
RewriteCond
$1 !^(index\.
php|images|
robots\.txt)
RewriteRule
^(.*)$ /index.
php/$1 [L]

Das ergibt dann folgendes URL-Konzept: domain.de/klasse/funktion/parameter.

Das zentrale Element ist eine Klasse, im Normalfall der Controller des MVC-Modells. Diese Klasse wiederum hat bestimmte Funktionen. Als Nächstes folgen dann die Parameter. Angesprochen werden kann die URI über die Klasse uri und über die url-Helper. Welcher Controller standardmäßig aufgerufen wird und wie die Aufrufe erfolgen, wird über routes.php im Verzeichnis config gesteuert.

Bevor Sie mit einem kleinen Beispiel starten, sollten Sie sich die Struktur des Standardaufbaus von Code Igniter genauer ansehen.

Die index.php-Datei, die standardmäßig aufgerufen wird und den zentralen Verteiler bildet, liegt direkt im Hauptverzeichnis. Sie enthält wiederum zwei Variablen: $system_folder gibt an, wo sich Code Igniter selbst befindet. Dies ist standardmäßig das Verzeichnis system. In diesem Verzeichnis liegen alle benötigten Core-Dateien (codeigniter), Bibliotheken (libraries), Erweiterungen (plugins), Helfer-Klassen (helpers) und so weiter.

PHP-Frameworks Teil V - Code Igniter

© Archiv

Vorbildlich: Code Igniter ist sehr ausführlich dokumentiert. Die Schaubilder wie hier zum Ablaufmodell sind übersichtlich.

Außerdem versteckt sich darin die eigentliche Anwendung. Sie wird über eine zweite Variable $application_folder in der index.php definiert.

Sie arbeiten nun im Folgenden nur innerhalb des Anwendungsverzeichnisses application. Selbstverständlich können Sie es auch kopieren und den Wert in der index.php ändern, sodass das Original noch erhalten bleibt.

MVC

Standardmäßig verwendet Code Igniter den Controller welcome. Sie finden ihn - wie alle Controller - im Verzeichnis controllers. Er übernimmt die zentrale Steuerung zwischen Ausgabe und Datenschicht. Legen Sie hier nun testweise einen neuen Controller an. Er erhält den Namen frameworkslist.php und soll eine Liste mit Frameworks aus einer Datenbank auslesen.

Der Controller besteht aus einer Klasse, die die zentrale Klasse Controller erweitert. Im Konstruktor wird der Konstruktor der übergeordneten Klasse aufgerufen.

Mehr zum Thema

Youtube Sperre umgehen GEMA
Videos freischalten

So umgehen Sie die GEMA-Sperre bei Youtube. Was Sie dazu brauchen, und wie es am einfachsten geht.
Neue Fritzboxen unterstützen den AC-Standard.
WLAN-Geschwindigkeit verdoppeln

Mehr WLAN-Geschwindigkeit: Mit dem WLAN-Standard 802.11ac und den richtigen Geräten und Einstellungen verdoppeln Sie den Datendurchsatz.
Netflix auf dem TV
Programm in der Übersicht

Welche Filme und Serien gibt es bei Netflix eigentlich zu sehen? Was ist neu im Streaming-Angebot? Diese Antworten helfen weiter.
Netflix
Streaming

Preise, kompatible Geräte, Datenrate, Serien- und Filmangebot von Netflix: Wir beantworten die wichtigsten Fragen rund um den Streaming-Dienst.
E.T. – Der Außerirdische
Vorschau auf Film- und Serien-Highlights

Amazon Prime Instant Video lockt im Dezember 2016 mit Film-Highlights wie "E.T.", "Fast & Furious 7" und der Serie "Ku’damm 56​".