Eierlegende Wollmilchsäue gibt es unter den PHP Frameworks viele. Zend, CakePHP, CodeIgniter, alle basierend auf dem MVC(Model-View-Controller)-Prinzip. Steile Lernkurven bei dieser Art von PHP Anwendung sind keine Seltenheit und oft bleibt ein Großteil der vorhandenen Möglichkeiten ungenutzt bzw. wirkt beim Einstieg eher erschlagend als hilfreich. Deshalb widmen wir uns diesmal dem PHP Mini Framework Silex.
Silex ist ein auf PHP 5.3 aufbauendes Framework, welches ein zügiges Umsetzten von klein- bis mittleren Webprojekten ermöglicht. Silex basiert auf dem bekannt- und erprobten Symfony-Framework, was die optionale Benutzung der zahlreichen Symfony2-Komponenten zulässt.

Das Silex Micro Framework im Einsatz, vorbereitende Maßnahmen
Wir starten zunächst mit dem Aufbau eines klassischen Hello-World Beispiels. Dazu wird das Silex-PHP-Archiv benötigt, die silex.phar gibt es direkt auf der Seite der Entwickler von Sensiolabs.
Zudem benötigen wir eine .htaccess Datei, um alle URL-Anfragen an unsere Silex-Anwendung umzuleiten. Diese könnte folgendermaßen aussehen:

<IfModule mod_rewrite.c>
RewriteEngine On
#RewriteBase /path/to/app
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>

Beachtet, dass mod_rewrite nicht auf allen Webservern aktiviert ist und ggf. zunächst in der Apache httpd.conf aktiviert werden muss.

Falls eure Silex-Installation nicht auf dem Root-Verzeichnis ( / ) der Testumgebung liegt, muss der weiterführende Pfad, ab dem Root-Verzeichnis als RewriteBase in eurer .htaccess Datei definiert werden. Dabei nicht vergessen die Raute (Kommentarindikator) vor der Zeile zu entfernen.

Hallo Welt
Bisher haben wir zwei Dateien in unserem Silex-Projekt: Die zuvor heruntergeladene silex.phar und unsere angelegte .htaccess-Datei. Zeit um unsere erste, einfache Applikation anzulegen.
Wie anhand der RewriteRule unserer .htaccess-Datei zu erkennen ist, werden alle Anfragen des Webservers an die index.php umgeleitet. Der Inhalt unserer index.php sieht für das Hallo-Welt-Beispiel folgendermaßen aus:

<?php
require_once __DIR__.'/silex.phar';

$app = new Silex\Application();
$app['debug'] = true;

$app->get('/hello/{name}', function($name) use($app) {
return 'Hello '.$app->escape($name);
});

$app->run();

Mehr an Code wird nicht benötigt, um unsere erste Anwendung zu testen. Zunächst includen wir das .phar-Archiv, damit uns die Funktionen des Frameworks zur Verfügung stehen.

Dann initialisieren wir unsere Applikation via:

$app = new Silex\Application();

Und aktivieren den Debug-Mode, um umfangreichere Fehlermeldungen zu erhalten:

$app['debug'] = true;

Als nächstes definieren wir einen Controller, der alle Anfragen mit „hello“ im ersten Segment der URL abfängt und verarbeitet:/hello/{name}. Die geschweiften Klammern ermöglichen uns, das zweite Segment der URL als Variable zu verwenden.

$app->get('/hello/{name}', function($name) use($app)

Als Ausgabe wird nun „Hello“ und unsere $name Variable zurückgegeben, welche zuvor noch von eventuell vorhandenem Schadenscode, via $app->escape(), befreit wird.

return 'Hello '.$app->escape($name);

Schließlich muss die Anwendung nur noch aufgerufen werden:

$app->run();

Testen der Silex Applikation
Zeit um unsere erste Applikation zu testen. Ruft dazu das Root-Verzeichnis der Silex-Installation auf eurem Webserver auf. Da wir noch keinen Controller für die default Route ( / ) definiert haben, gibt es hier zunächst eine Fehlermeldung.
Steuern wir jedoch unseren zuvor definierte Controller unter /hello/world im Browser an, wird das zweite Segment der URL als $name an den Controller übergeben, welcher uns dann „Hello world“ als Ausgabe zurückgibt.

Fazit
Dies war ein erster Einblick für den Einstieg in das flexible Micro PHP Framework Silex. Nächste Schritte wären es, z.B. die Template-Komponente „Twig“ zu registrieren. Bei Interesse kann die weiterführende Dokumentation empfohlen werden. Das GitHub-Repository von Saša Stamenković bietet Interessierten auch die Möglichkeit, den kompletten Quellcode seines mit Silex umgesetzten Portfolios anzusehen.

keine Kommentare zu " PHP Micro Framework Silex "

Kommentieren

  Name (Pflichtfeld)

  E-Mail (Pflichtfeld)

  Webseite

Beachte: Die Komentare erscheinen nicht direkt. Sie werden durch den Moderator
freigeschaltet.