Leichtgewichtigkeit mit Performanceboost

Teil 3: Serie: PHP-Frameworks Teil 5 - Code Igniter

Die Datenbank, auf die hier zugegriffen wird, ist die schon aus anderen Teilen der PHP-Framework-Serie bekannte Datenbank mit einer Liste einiger Frameworks in der Tabelle frameworks. Sobald Sie die Datenbankverbindung eingerichtet haben, können Sie das Scaffolding im Controller aufrufen:

<?php
class FrameworksList extends
Controller {
function FrameworksList()
{
parent::Controller();
$this->load->scaffolding
('frameworks');
}

Um auf die Formulare zuzugreifen, benötigen Sie einen sogenannten Trigger für das Scaffolding. Er wird in config/routes.php festgelegt:

$route['scaffolding_trigger'] =
"scaffolding";

Hängen Sie den Wert, den Sie als Trigger angegeben haben, in der URL hinter den Namen des Controllers an. Bei einem Aufruf über den lokalen Webserver kann die URL zum Beispiel so aussehen: http://localhost/Code Igniter_1.7.1/index.php/frameworkslist/scaffolding/. Wenn Sie die URL aufrufen, erhalten Sie eine formatierte Seite mit allen Frameworks aus der Liste. Jeder Eintrag lässt sich bearbeiten und löschen. Außerdem haben Sie die Möglichkeit, einen neuen Eintrag hinzuzufügen.

Die entsprechenden Views für das Scaffolding finden Sie unter system/scaffolding/views.

Active Record

Das Scaffolding erst naturgemäß nicht die normale Datenbankabfrage. Für die stellt Code Igniter standardmäßig eine auf dem Active-Record-Entwurfsmuster basierende Schnittstelle zur Verfügung.

Wer darauf lieber verzichten möchte, kann in config/database.php die Variable $active_record auf false setzen. In diesem Fall stehen nur die normalen Datenbankabfragemethoden wie query(SQL) zur Verfügung ().

PHP-Frameworks Teil V - Code Igniter

© Archiv

Formatiert: Code Igniter gibt die Frameworks als Tabelle aus.

Die SQL-Abfrage fügen Sie selbst in den Aufruf ein. Funktional ist das Absichern von Parametern über escape() und escape_str() möglich und Sie können Parameter an eine Abfrage binden. Ansonsten wird Ihnen die SQL-Arbeit allerdings nicht abgenommen.

Dies erledigen dagegen die auf Active Record basierenden Methoden. Sie sind, genau wie die normale Abfrage mit query() auch Teil der Database-Klasse. Diese Klasse wiederum ist Teil der Bibliothek.

Bei einer Klasse aus der Bibliothek gibt es in Code Igniter zwei Methoden, sie einzubinden. Die eine Methode ist, sie in config/autoload.php einzutragen:

$autoload['libraries'] =
array('database');

In diesem Fall steht sie automatisch zur Verfügung. Sie gelangen mit $this->db auf das Objekt der Database-Klasse und können alle Methoden einsetzen. Die Alternative ist, die Klasse erst später im Controller zu laden:

$this->load->library
('database');

In den folgenden Beispielen laden wir die Database-Klasse über die Datei config/autoload.php, da sie immer benötigt wird. Im Controller laden wir dagegen eine Bibliothek mit dem Namen table. Sie erlaubt das einfache Generieren einer HTML-Tabelle. Ihre Methoden setzen wir dann in der View ein:

<?php
class FrameworksList extends
Controller {
function FrameworksList()
{
parent::Controller();
$this->load->library('table');
}

In der Methode index() übergeben Sie die Daten aus der Datenbank an die View. Dies geschieht über die $data-Variable. Der Zugriff auf die Datenbank erfolgt mit der Methode get(). Sie erhält als ersten Parameter die angesteuerte Tabelle:

function index()
{
$data['ueberschrift'] = 'PHP-
Frameworks';
$data['liste'] = $this->db->get
('frameworks');
$this->load->view('frameworkslist',
$data);
}
}

In der View greifen Sie dann direkt auf das Ergebnis der Datenabfrage in der Variablen $liste zu. Sie erhalten das Ergebnis über die Methode result(). Im Ergebnis steht dann jedes Tabellenfeld als Eigenschaft zur Verfügung.

foreach($liste->result() as
$framework) {
echo $framework->name .
'<br />';
}

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​".