201116Jul

Laravel: PHP-Framework mit Routing und ORM

Für PHP gibt es neben den großen und umfangreichen Frameworks auch weniger komplexe Bibliotheken wie etwa Silex. Deartige Micro-Frameworks bieten zwar eine kleinere Schnittmenge an Funktionen, können aber dennoch sehr hilfreich bei der Entwicklung von PHP-gestützten Web-Anwendungen sein. Ein kompaktes Framework, über das ich letzte Woche gestoßen bin, nennt sich Laravel und bietet ausgereifte Werkzeuge wie Routing, ein View-Modell, ein Prozessor für HTTP-Requests und ORM (Object-relational mapping) für verschiedene Datenbanksysteme.

Laravel - A Clean and Classy PHP Framework

So lassen sich mit Laravel Routen im REST-Stil erzeugen, die auf entsprechende Views verweisen: Hierfür wird die Struktur des "applications"-Verzeichnisses verwendet, das im Framework integriert ist. Wenn sich also ein View in "application/views/ansicht.php" befindet, kann eine Route auf "/home" wie folgt erzeugt werden:

  • "GET /home" => function() {
  • return View::make("ansicht");
  • }

Innerhalb der "make"-Funktionen können zudem auch Unterverzeichnisse angegeben werden, wodurch sich auch komplexere Strukturen erstellen lassen. Laravel bietet eine große Vielfalt an Möglichkeiten und so lassen sich natürlich auch Daten an Views übergeben:

  • "GET /home" => function() {
  • return View::make("ansicht")->bind("email", "example@gmail.com");
  • }

Die dazugehörige View-Datei im Verzeichnis "application/views/ansicht.php":

  • <html>
  • <?php echo $email; ?>
  • </html>

Der Umfang des Frameworks ist sehr gut dokumentiert und so lohnt es sich, in der API zu stöbern. Abschließend noch ein Blick auf das ORM-Modul "Eloquent", das in Laravel integriert ist.

  • // Basis-Klasse von Eloquent erweitern
  • class Benutzer extends Eloquent {
  • public static $table = "users";
  • }
  •  
  • // Model auslesen
  • $benutzer = Benutzer::find(1);
  • echo $benutzer->email;
  •  
  • // Ausgeführt wird: SELECT * FROM "users" WHERE "id" = 1

Laravel unterstützt von Haus aus MySQL, PostgreSQL und SQLite. Neben einem gängigen Webserver wie Apache oder Nginx wird PHP 5.3 vorausgesetzt.

RSS-Feed abonnieren Bookmark bei Del.icio.us Bookmark bei Mister Wong