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

HTML5: Quick Reference Guide
Ratgeber: "HTML5"

Die wichtigsten Tags auf einen Blick: In unserem praktischen Arbeitsblatt finden Sie einen wertvollen Begleiter für die Umstellung Ihrer Webprojekte…
internet, webdesign, google, content, ranking, seo, suchmaschine
Ratgeber: Urheberrecht

Einzigartige Inhalte bieten Lesern Mehrwert und sind ein wichtiges Qualitätsmerkmal. Ärgerlich, wenn sich jemand durch Kopieren an fremden…
Die besten HTML5-Tipps
Neue Tipps & Tricks für blitz.io

Wer die Leistung einer Applikation ermitteln möchte, braucht keine Skripte zu schreiben, sondern kann einen der zahlreichen Online-Dienste…
image.jpg
Ratgeber: Webentwicklung

Die clientseitige Javascript-Entwicklung bietet fast keine Entwicklungsumgebungen und auch keine vernünftigen Werkzeuge zur Fehlersuche. Eine der…
internet, webdesign, meteor, webapplikationen
Ratgeber

Mit Meteor sollen Entwickler in kurzer Zeit Umgebungen für Webapplikationen erstellen können, ohne sich um lästige Details kümmern zu müssen. Wir…