Codeigniter – Einführung in das Framework
So als erstes Thema hier in meinem Blog habe ich mir Codeigniter ausgesucht. Ich werde damit nun mal ein kleine Blog System schreiben das ich in mehrer weiteren Posts immer erweitern werde. Für den Anfang soll man in dem Blog nun einfach eine Ausgabe mit allen Blog einträgen haben.
Aber eins nach dem anderem, zuerst müssen wir Codeigniter erstmal installieren.
[ad#ad-1]
Installation
- Codigniter in der aktuellsten Version von www.codeigniter.com downloaden
- Entpacke das Verzeichnis

- kopiere alle Dateien und Verzeichnise in ein Ordner “testblog” ( der Name ist egal )
- die wichtigste Konfigurations Datei findest du im Verzeichnis
system/application/config/config.phphier ersetzt du die Werte mit den die zu deinem System passen - nun solltest du den beiden Verzeichnissen
system/cache/undsystem/logs/noch die entsprechenden Rechte geben - greife jetzt auf das Verzeichis zu in dem die index.php Datei liegt und du wirst schon einmal die “Welcome to CodeIgniter!” – Seite sehen.
Datenbank
Die Datenbank ist erst mal noch ganz Simpel, weil wir brauchen ja nur eine Tabelle wo wir die Blog einträge hinspeichern können.
CREATE TABLE `blog_entries` ( `id` bigint(11) NOT NULL AUTO_INCREMENT, `title` varchar(100) NOT NULL, `body` text NOT NULL, PRIMARY KEY (id) );
Ich denke da muss ich nun nicht viel sagen, das sollte jeder wissen was die Zeile tut.
Controller
Ab hier wird nun programmiert, als erstes legen wir uns einen Controller an mit dem wir die Blog einträge später aufrufen können. Dazu gehen wir in das Verzeichnis system/application/controller/ und legen dort eine blog.php an.
Der Inhalt der blog.php sollte folgender sein:
<?php
class Blog extends Controller{
function index(){
// Nun eine Test ausgabe
echo 'Hello World!';
}
}
?>
Wenn du jetzt mal mit dem Firefox deine Domain wo du deine Codeigniter Test Applikation findest mit dem Zusatz /index.php/blog aufrufst solltest du unser “Hello World!” zu sehen bekommen.
Damit die Blog einträge die ersten sind die ein Besucher zu sehen bekommen, also direkt unter der index.php aufgerufen wird muss man in der system/application/config/routes.php die Zeile
$route['default_controller'] = "welcome";
in $route['default_controller'] = "blog"; ändern, ab jetzt wird direkt unter http://domain/index.php der Controller “blog” aufgerufen.
View
Die View legen im Verzeichnis /system/application/views/ an mit dem Name blog.php.
Als Inhalt schreiben wir einfach mal:
<!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>
Damit die Variable $title auch gesetzt wird müssen wir die Zeile echo ‘Hello World!’; ind unserem Controller durch zwei neue Zeilen ersetzen:
$data['title'] = 'Test-Blog';
$this->load->view(‘blog’, $data);
geschrieben werden, damit übergeben wir also ein Array wobei der Key immer als Variablenname im Template auftritt.
Model
Zu guter letzt müssen wir noch ein Model bauen, das braucht aber nicht viele Zeilen. Für das Model legen wir einfach eine Datei blogentries_model.php im Verzeichnis system/application/models/ an.
In der blogentries_model.php steht dann :
<?php
class Blogentries_model extends Model
{
function get_list()
{
return $this->db->select(‘title, body’)->get(‘blog_entries’)->result();
}
}
?>
Nun müssen wir dieses Model noch in dem Controller richtig ansprechen, so das dann auch die Daten die aus der Datenbank Tabelle kommen an die View weitergegeben werden können:
<?php
class Blog extends Controller
{
function index() {
$this->load->model(‘blogentries_model’, ‘entries’);
$data['title'] = ‘Test-Blog’;
$data['entries'] = $this->entries->get_list();
$this->load->view(‘blog’, $data);
}
}
?>
Damit die View die Daten nun auch ausgibt bedarf es in der View auch einer kleinen änderung:
<?php foreach($entries as $entry){ ?>
echo $entry->title; ?>
echo $entry->body; ?>
Wären jetzt noch ein paar Datensätze bei euch in der Datenbank sollte eine Liste mit allen Datensätzen herraus kommen.
Die nächsten Tage werde ich dann weitere Sachen hier rein stellen, z.B. wie man mit der “Pagination Class” auch noch alle Einträge auf mehrere Seiten verteilt.




Trackbacks & Pingbacks