Kategorien
Laravel

#Kapitel 1: Start

Nachdem ich jahrelang das Zend Framework verwendet habe, hat sich bei mir das Gefühl entwickelt, dass es damit nicht wirklich weitergeht. Plötzlich hieß es Laminas und auf der Projektseite ist es seit längerer Zeit sehr ruhig. Da dachte ich, es ist Zeit sich mit was neuem, frischen zu beschäftigen. Sehr viel Bewegung herrscht Rund um Laravel und erfreut sich auch hoher Beliebtheit.

Wie startet man?

Für eine Webanwendung braucht man einiges. Beispielsweise ein Webserver, der die Inhalte ausliefert, eine Skriptsprache, HTML, Javascript, CSS und am besten ein Framework, das einem das Leben leichter macht. Es versteht sich von selbst, dass man als Entwickler am liebsten möglichst wenig Aufwand betreiben will, um ein Projekt mit einem Framework aufzusetzen.

Laravel bietet dafür mir drei bekannte Möglichkeiten:

  • Docker: Alles was benötigt wird, wird unter Docker betrieben: Webserver, PHP, MySQL, Laravel… alles kommt mit einem einzigen Befehl auf den lokalen Rechner und wird in einer virtuellen Umgebung zur Verfügung gestellt.
  • Composer: Kann man als (PHP) Paketmanager verstehen. Composer wird über die Kommandozeile bedient und installiert unter Beachtung von Abhängigkeiten alle notwendigen Laravel-Komponenten mit einem einzigen Befehl.
  • Homestead: Auf Vagrant basierende virtuelle Umgebung, die alles mitbringt, was man für die Entwicklung benötigt: Nginx, PHP, MySQL, PostgreSQL, REdis, Memcached, Node und weiteres.

Weiterführende Informationen:

Installation via Composer

Voraussetzung ist natürlich eine funktionierende Composer Installation und die Voraussetzung dafür ist wiederum eine vorhandene PHP Installation. Ich gehe davon aus, dass dies bereits vorhanden ist.

Ich selbst nutze diese Variante ganz gerne, weil über Composer alle Dateien lokal vorhanden sind und somit einfach mit jeder gewünschten Entwicklungsumgebung gestartet werden kann. Außerdem können weitere Bibliotheken ganz simpel per Composer eingebunden und im Projekt verwendet werden können.

Um ein Projekt aufzusetzen genügt folgender Befehl im Windows-Terminal in einem Ordner der Wahl:

composer create-project laravel/laravel example-app

Auf der Platte landen jetzt jede Menge Dateien und Ordner:

Damit man das Projekt im Browser betrachten kann, muss mit einem Webserver das /public Verzeichnis als Wurzelverzeichnis eingebunden werden.

Am Beispiel des IIS sieht das folgendermaßen aus:

An der Stelle der Hinweis, dass der IIS mit einer PHP Handlerzuordnung konfiguriert sein muss, also mit PHP Dateien „umgehen“ kann.

Damit der Browser die URL zu localhost auflösen kann, bearbeite ich unter Windows die hosts-Datei:

Nun kann im Browser die Seite angezeigt werden:

Deployment?

Es stellt sich die Frage, wie man die fertige Anwendung in anderer Umgebung ausliefert oder wie man mit einer Versionsverwaltung umgehen soll (z. B. SVN, Git). Das Projekt enthält bereits .gitignore Dateien, in denen alle Angaben enthalten sind, wie man das Projekt unter Git eincheckt. Das kann man entsprechend für andere Verwaltungssystem adaptieren.

.gitignore im Wurzelverzeichnis des Projekts

In meinem gezeichneten Szenario würde ich also z. B. auf dem Zielserver ein Checkout machen, die Environment konfigurieren, ein Composer-Update und ggf. noch ein paar Optimierungen machen, wie sie unter https://laravel.com/docs/8.x/deployment zu lesen sind.

In der Annahme, dass der Webserver und ggf. die Datenbank-Verbindung korrekt konfiguriert sind sollte es – so die Theorie – laufen. Am einfachsten wäre es, dass dies ein kleines Skript von alleine macht. Aber dazu mehr im nächsten Post.