Zum Inhalt springen
Der Guide für ein smartes Leben.
Leichtgewicht

Teil 2: Serie: PHP-Frameworks Teil 3 - Seagull

Autoren: Redaktion pcmagazin und Tobias Hauser • 22.7.2009 • ca. 2:15 Min

Die Konfiguration schreibt Seagull in die zentrale Konfigurationsdatei default.conf.dist.ini, die Sie im Verzeichnis etc finden. Nach der Datenbankeinrichtung geben Sie noch Nutzername und grundlegende Informationen an. Diese Daten sind eigentlich ungewöhnlich, denn ein Framework bietet im Normal...

Die Konfiguration schreibt Seagull in die zentrale Konfigurationsdatei default.conf.dist.ini, die Sie im Verzeichnis etc finden.

Nach der Datenbankeinrichtung geben Sie noch Nutzername und grundlegende Informationen an. Diese Daten sind eigentlich ungewöhnlich, denn ein Framework bietet im Normalfall nur Basisfunktionen. Seagull geht hier wie erwähnt einen Schritt weiter und bietet CMS-Funktionalitäten.

Nach dem Bestätigen werden die entsprechenden Datenbanktabellen für Nutzerverwaltung, Navigation et cetera angelegt und eine Startseite wird aufgerufen.

Ein erster Blick

Die Startseite zeigt einige interessante Funktionalitäten: Sie haben hier die Wahl zwischen verschiedenen Layouts und können schon die Sprache umschalten. Dies wirkt sich allerdings nur auf einige Funktionalitäten wie den Login-Screen aus. Änderungen an Layout oder Sprache spiegeln sich im URL-Schema wieder. Die Standardsite ist aktuell unter:

PHP-Frameworks Teil III - Seagull
Ersteinrichtung: Für die erste Website müssen Sie einige Grundeinstellungen treffen.
© Archiv

Die Struktur der URL ist dabei folgendermaßen: Nach der Domain und dem Unterverzeichnis folgt der Name des Front-Controllers. Dieser nimmt alle Aufrufe entgegen. Der Name kann natürlich variieren, index.php ist der Standard-Front-Controller. Anschließend folgt der Modulname, in diesem Beispiel default. Das sind die minimal notwendigen Informationen.

Für die Registrierung sieht die URL so aus: . Hier folgt nach dem Modul user der sogenannte Manager register. Alternativ könnte beim Einloggen zum Beispiel auch login der Manager sein.

Die Module dafür finden Sie im Seagull-Verzeichnis unter modules. Jedes Modul besitzt ein eigenes Verzeichnis mit seinem Namen. Diese URL-Konvention wird von Seagull automatisch umgesetzt.

Wer die URLs noch ein wenig verschönern möchte, hat zwei Möglichkeiten. Er verhindert im Apache, dass Dateien mit Dateiendung aufgerufen werden müssen:

<Files article>
ForceType application/x-httpd-php</Files>

Damit fällt das .php beim Front-Controller weg. Alternativ können Sie URL-Rewriting mit mod_rewrite einsetzen. Eine ausführliche Anleitung finden Sie unter .

Nach dem Blick auf die URLs lohnt ein Blick in das Backend der Standardseite. Wenn Sie sich einloggen, landen Sie zuerst in der Modulverwaltung. Module sind in Seagull für alle wichtigen Aufgaben zuständig. Überträgt man die Nomenklatur auf das MVC-Modell, so beinhalten Module in Seagull potenziell mehrere der MVC-Bestandteile.

Datenspeicherung und -verwaltung wird ebenso von den Modulen aus gesteuert wie die Darstellung mit Templates. So ist beispielsweise die aktuell eingefügte Homepage nichts anderes als ein in diesem Fall sogar statisches Template, zu finden in .

Eigene Module

Seagull entfaltet seine volle Wirkung, wenn Sie auf die umfangreichen Basisfunktionen setzen und diese mit eigenen Modulen erweitern. Dazu haben Sie im Backend die Möglichkeit, über den Module Generator ein neues Modul anzulegen. In unserem Fall soll das ein einfaches Modul sein, das eine Liste mit Frameworks anzeigt.

PHP-Frameworks Teil III - Seagull
Verwaltung: Seagull erzeugt automatisch ein eigenes kleines Backend.
© Archiv

Dazu nehmen wir alle Unterstützungen in Anspruch, die uns Seagull bietet. Die Liste befindet sich in der Tabelle list, die Sie vorab neu anlegen müssen. Sie enthält einige Frameworks mit einer ID, dem Namen und der Lizenz.

CREATE TABLE IF NOT EXISTS `list` (
`id` int(11) NOT NULL, `name` varchar(255) character set utf8 collate utf8_unicode_ci NOT NULL, `licence_id` int(11) NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `list` (`id`, `name`,
`licence_id`) VALUES
(1, 'CakePHP', 1),(2, 'FLOW3', 2),(3, 'Zend Framework', 3),(4, 'Seagull', 4);