CodeIgniter installieren und einrichten

Auf der Suche nach dem richtigen Framework habe ich schon die ein oder andere Alternative ausprobiert und bislang alle wieder verworfen. Einige bekannte Vertreter waren dabei, z.B. CakePHP, und viele unbekannte, denen ich eine Chance geben wollte. Mein derzeitiger Liebling ist CodeIgniter, weil sich damit bei extrem flacher Lernkurve schnell Anwendungen erstellen lassen. CodeIgniter punktet mit großem und leicht handhabbarem Funktionsumfang und komfortabler Erweiterbarkeit durch eigene Libraries (oder die Anpassung bestehender Libraries).
Den Ausschlag CodeIgniter einzusetzen hat letztlich eine Serie von Videotutorials auf Nettuts namens „CodeIgniter From Scratch“ gegeben. Die Tutorials betrachten jeweils unterschiedliche Aspekte des Frameworks, angefangen von MVC über Datenbankzugriffe bis hin zu den eingebauten Kalender- und Shop-Libraries. Jedes Tutorial beginnt mit einer frischen Installation und mit der Zeit bekommt man eine ganze Reihe von Tipps und Tricks, die man bei der Konfiguration beachten sollte.

Der Einfachheit halber hier eine Checkliste aller notwendigen oder hilfreichen Einstellungen.

Installation

  • Download des Packages und Entpacken in ein Ordner unter htdocs (in diesem Beispiel ci).
  • Verschieben des Ordners ci/system/application nach ci/application
    Dieser Schritt ist nicht notwendig, sorgt aber für eine sichtbare Trennung des Basissystems und den anwendungsspezifischen Skripten
  • Löschen des Ordners ci/user_guide, sofern er nicht noch zum Nachschlagen während des Programmierens gebraucht wird.
    Ohne die Dokumentation entpuppt sich CodeIgniter als Leichtgewicht mit knapp einem Megabyte Platzbedarf.


Konfiguration

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /ci/index.php?/$1 [L]
</IfModule>

  • Einstellungen an der Datei ci/application/config/config.php

$config['base_url']    = "http://host/ci/"; //Standardpfad für den Zugriff per Browser
$config['index_page'] = ""; //nur dann das voreingestellte index.php entfernen, wenn die .htaccess verwendet wird
$config['encryption_key'] = "fzDfe64dsL§dsiitDvFoFD%3DrekDw1!"; //zufälliger Schlüssel für encode/decode Funktionen und die Sessionverschlüsselung
$config['sess_cookie_name']        = 'ci'; //Name passend zur Webseite
$config['global_xss_filtering'] = TRUE; //Automatische sicherheitsbedingte Eingabeprüfung

  • Festlegen der vorab geladenen Libraries, Helper, Models, etc. in der Datei ci/application/config/autoload.php
    Normalerweise werden benötigte Features in den Methoden der Controller per $this->load geladen. Anstatt eine häufig benutzte Library aber in jedem Controller einzeln einzubinden, z.B. die Datenbankanbindung, kann man diese zentral laden lassen.
  • Pflege der Zugangsdaten bei Verwendung einer (relationalen) Datenbank wie MySQL in der Datei ci/application/config/database.php

$db['default']['hostname'] = "localhost";
$db['default']['username'] = "";
$db['default']['password'] = "";
$db['default']['database'] = "";

  • Definition des Controllers, der standardmäßig, also bei Aufruf von http://host/ci angezeigt wird (Einstellung in ci/application/config/routes.php)
    Im Auslieferungszustand enthält CodeIgniter einen beispielhaften Controller namens Welcome, der lediglich eine Nachricht im Browser ausgibt. Diesen kann man getrost löschen, muss dann aber in der routes.php Datei eine Alternative angeben.

$route['default_controller'] = "controllername"; //Standard ist welcome

Advertisements