Facebook
Twitter
Google+
Kommentare
14

CodeIgniter – Erstellung einer Applikation

Im zweiten Artikel über CodeIgniter, kurz CI genannt, werden wir uns der Praxis zuwenden und ein Applikation erstellen.
Ich möchte mich in diesem Beispiel an der bestehenden Dokumentation zu CI orientieren und ein Blog erstellen.

Installation

Wenn man andere Frameworks kennt, erwartet man nun eine mehrseitige Anleitung. Bei CI sind dazu aber nur einige wenige Schritte notwendig.

  • Lade dir die aktuelle Version von codeigniter.com herunter.
  • Entpacke die Zip Datei. Du erhältst die folgende Verzeichnisstruktur:
    Verzeichnisstruktur
  • Lade die Datei index.php und das Verzeichnis system auf deinen Server. user_guide kannst du, wenn du magst, natürlich ebenfalls auf deinen Server laden.
  • Sinnvollerweise verschiebst du dabei das Verzeichnis application aus dem system Verzeichnis, so dass es direkt neben der Index.php liegt. CI findet das Verzeichnis auch dort.
  • Das Verzeichnis system/scaffolding werden wir nicht benötigen und sollte vor dem Livebetrieb immer gelöscht werden. In Version 2 wird es nicht mehr vorhanden sein.
  • Die wichtigste Konfigurationsdatei ist unter application/config/config.php zu finden. Öffne diese Datei und ändere die Zeile $config['base_url'] = "http://example.com/"; sodass sie deiner aktuellen Konfiguration entspricht.
  • Nun musst du nur noch deinem Server das Recht geben, die folgenden Verzeichnisse zu ändern:
    • system/cache
    • system/logs
  • Wenn du nun auf das Verzeichnis zugreifst, in dem die index.php liegt, bekommst du bereits die „Welcome to CodeIgniter!“ Seite zu sehen:
    Welcome

Datenbank

Als erstes werden wir eine Datenbank anlegen. Sie bekommt den Namen „blog“ und enthält die folgende Tabelle:

CREATE TABLE entries ( id int(11) NOT NULL AUTO_INCREMENT, title varchar(100) NOT NULL, body text NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Als nächstes solltest du deine Datenbankeinstellungen in der Datei application/config/database.php eintragen.

Um die Datenbank Klasse automatisch zu laden aktiverien wir diese in application/config/autoload.php:
$autoload['libraries'] = array('database');

Der Controller

Wir erstellen eine Datei mit dem Namen blog.php im Verzeichnis application/controllers:
<?php
class Blog extends Controller
{
function index()
{
echo 'Hello world';
}
}
?>

Wenn wir nun auf index.php/blog zugreifst, wirst du „Hello world“ zu sehen bekommen.

Um diesen Controller zum Standard zu machen ändern wir in der application/config/routes.php den Eintrag:
$route['default_controller'] = "welcome";

in:
$route['default_controller'] = "blog";

Die View

Wir erstellen nun eine Datei mit dem Namen blog_view.php im Verzeichnis application/views:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title><?php echo $title; ?></title>
</head>

<body>
<h1><?php echo $title; ?></h1>
</body>
</html>

Im Controller ersetzen wir:
echo 'Hello world';
gegen:
$data[‚title‘] = ‚Blog‘;
$this->load->view(‚blog_view‘, $data);

Die index.php sieht nun folgendermaßen aus:
Blog

Das Array $data dient dazu, Daten an die View zu übergeben.
Diese können dann über den Schlüsselnamen – in dem Fall $title – angesprochen werden.

Man könnte auch short tags <? ?> in der View verwenden, jedoch muss das dann entweder vom
System unterstützt werden, oder $config['rewrite_short_tags'] = true; in
application/config/config.php aktiviert werden.

CI bietet auch einen Template Parser an,
weiters ist es möglich andere Template Engines wie zum Beispiel Smarty, TinyButStrong und so weiter zu verwenden.

Das Model

Als letzten Punkt dieser kurzen Einführung gehen wir noch eine Model an.

Dazu erstellen wir eine Datei mit dem Namen entries_model.php im Verzeichnis application/models:

<?php
class Entries_model extends Model
{
function get_list()
{
return $this->db->select(‚title, body‘)->get(‚entries‘)->result();
}
}
?>

Nun müssen wir das Model vom Controller aus ansprechen. Wir übergeben auch das Ergebnis an die View:
<?php
class Blog extends Controller
{
function index() {
$this->load->model(‚Entries_model‘, ‚entries‘);
$data[‚entries‘] = $this->entries->get_list();
$data[‚title‘] = ‚Blog‘;
$this->load->view(‚blog_view‘, $data);
}
}
?>

Als letzten Schritt fügen wir dies der View hinzu:
<?php foreach($entries as $entry): ?>
<h2><?php echo $entry->title; ?></h2>
<p><?php echo $entry->body; ?></p>
<?php endforeach; ?>

Wenn wir schließlich ein paar Testdaten in die Tabelle einfügen erhalten wir folgende Ausgabe:
Blog mit Daten

Ich wünsche viel Spass mit CodeIgniter und Verweise abschließend noch einmal auf den User Guide.

Über den Autor

Christian Koller

Aktuell arbeite ich an der Entwicklung einer Business Software auf PHP Basis. Mit Programmierung im Allgemeinen beschäftige ich mich seit 1997 und kam schließlich 1999 zum ersten mal mit HTML in Kontakt. Danach ging es über Perl ziemlich schnell Richtung PHP, Java und Python. Seit dem letzten Jahr bin ich nun auch ZCE.
Kommentare

14 Comments

  1. Na, also in dem was ich dem Nils geschickt hab, waren schon ein paar Bilder drinnen 😉
    Die sind jetzt drinnen

    Reply
  2. Schön, dass auch Frameworks jenseits von Zend, Cake, Symfony hier zu finden sind.

    Ich würde gerne eine objektiven Vergleich zwischen CI und Kohana lesen.
    Ich persönlich würde ja PHP5 vorziehen. Zumal 4 ja doch sehr 90er Jahre ist. 😉

    Leider findet man im Netz fast nur Vergleiche welche doch sehr polarisierend sind.

    Also, wer so etwas gefunden hat, nur her mit den Links.
    … oder noch besser hier im Blog.

    Reply
  3. Sehr gut geschrieben 😉

    Vielleicht wenn du noch einen Artikel zu CI schreiben willst würde ich vielleicht noch den Templates Parser einbringen.

    Ich glaube hätte ich nicht schon seit ein paar Monaten würde mit CI gearbeitet würde ich es mir JETZT genauer anschauen, also hast echt gut geschrieben 😉

    LG

    Reply
  4. @MBa Zu PHP 4 habe ich eh bereits geschrieben. Ich persönlich entwickle grundsätzlich nur mehr >=5.2, da ich das DateTime Objekt doch sehr schätze. Ich schätze halt die gute Dokumentation von CI. Auch ist der Code meiner Meinung nach gut überschaubar, wodurch man noch schnell selbst etwas am Core ändern/hinzufügen kann.

    @Bennet Matschullat Ich hab mir noch überlegt, später mal ein paar praktische Tipps zu geben. Den Template Parser nutze ich aber nicht, da ich einfach Smarty/Dwoo gewöhnt bin. PS: Danke

    Reply
  5. Hallo zusammen,
    ich bin erstaunt, funktioniert bestens, alles klappt so wie beschrieben. Werd ich mir genauer anschauen.

    Reply

Leave a Comment.

Link erfolgreich vorgeschlagen.

Vielen Dank, dass du einen Link vorgeschlagen hast. Wir werden ihn sobald wie möglich prüfen. Schließen