Laravel
Laravel ist ein Web-Framework für die Programmiersprache PHP.
Erstellen eines neuen vollwertigen Projekts
In Bitbucket findet sich ein für Docker vorkonfiguriertes Git-Repositorium, aus dem sich leicht neue Laravel-Projekte erstellen lassen.
Warning
Benutze nicht Forks von Bitbucket, um das neue Projekt anzulegen. Ansonsten werden sich alle Pull Requests im neuen Projekt standardmäßig auf das ursprüngliche Repositorium beziehen und nicht auf das neue Projekt.
Warning
Benutze nicht composer
create-project
,
um das neue Projekt anzulegen. Dabei geht die
Git-Historie verloren, was zukünfiges Mergen
unnötig erschwert.
Führe folgende Schritte aus, um ein neues Projekt zu erstellen:
- Lege ein neues Git-Repositorium in Bitbucket an
- Owner:
BIG5
- Project:
General
- Repository name:
EXAMPLE
- Access level: This is a private repository:
true
- Include a README?:
No
- Description:
- Forking:
Allow only private forks
- Language:
PHP
- Owner:
- Klone den Branch mit der gewünschten Version:
git clone --branch=7 --recursive --single-branch git@bitbucket.org:big5concepts-ondemand/laravel-docker.git EXAMPLE
- Wechsle in das geklonte Repositorium:
cd EXAMPLE
- Ersetze den Remote:
git remote remove origin && git remote add origin git@bitbucket.org:big5concepts-ondemand/EXAMPLE.git
- Benenne Versionsbranch um:
git branch --move 7 master
- Erstelle den
develop
-Branch:git branch develop
- Initialisiere GitFlow:
git flow init --defaults
- Pushe Branches:
git push --set-upstream origin develop master
Danach sollte die Projektvorlage angepasst werden. Sie enthält nützliche Dinge, die aber nicht von jedem Projekt gleichermaßen benötigt werden.
- Entferne unnötige Services und Volumes aus
docker-compose.yml
- Passe
bin/ptr
an
Erstellen eines lokalen Testprojekts
Für einfache lokale Tests und Praktikumsprojekte ist eine der Aufwand einer vollumfänglichen Installation nicht notwendig. Stattdessen kann einfach der eingebaute Webserver von PHP in Verbindung mit der eingebetteten Datenbank SQLite3 genutzt werden. Dann muss man sich weder mit Berechtigungen noch mit Datenbankdiensten herumschlagen.
Installiere hierfür zuerst PHP, SQLite3, die PHP-Erweiterung für SQLite3 und Composer mit dem Paketmanager deines Vertrauens. Danach kann das Projekt mithilfe von Composer erstellt werden.
composer create-project laravel/laravel EXAMPLE
Wechsle nun in das Verzeichnis des neu erstellten Projekts.
cd EXAMPLE
Konfiguriere und initialisiere dort eine
SQLite3-Datenbank unter
storage/database.sqlite3
.
sed \
-e 's|^DB_CONNECTION=.*$|DB_CONNECTION=sqlite|' \
-e "s|^DB_DATABASE=.*\$|DB_DATABASE=$(pwd)/storage/database.sqlite3|" \
-i.bak .env
sqlite3 storage/database.sqlite3 'PRAGMA journal_mode = WAL'
Starte schließlich den Webserver von PHP, um auf die Anwendungen im Webbrowser zugreifen zu können.
php artisan serve
Konfiguration
Laravel-Optionen lassen sich wie gewohnt über die Datei
.env
konfigurieren. Wenn man Laravel im Docker-Container laufen lässt muss
man darauf achten, dass Netzwerkdienste nicht mehr über localhost
erreichbar sind, sondern über den Namen ihres Dienstes in der
docker-compose.yml
. Dort finden sich auch die jeweiligen Zugangsdaten:
DB_CONNECTION=pgsql
DB_DATABASE=laravel
DB_HOST=postgresql
DB_PASSWORD=laravel
DB_PORT=5432
DB_USERNAME=laravel
MAIL_DRIVER=smtp
MAIL_ENCRYPTION=null
MAIL_HOST=mailcatcher
MAIL_PASSWORD=laravel
MAIL_PORT=1025
MAIL_USERNAME=laravel
REDIS_HOST=redis
PhpStorm
Folge der entsprechenden Anleitung, um PhpStorm für Laravel einzurichten.
Deployment
Unsere Anwendungen werden üblicherweise auf Server mit der Web Container Platform mithilfe von Ansible ausgerollt. In den Branch-spezifischen Inventories ist die mit Ansible Vault verschlüsselte Konfiguration hinterlegt.
Passwörter für WCP-Dienste kann man mit folgendem Befehl generieren:
dd if=/dev/urandom bs=24 count=1 2> /dev/null | base64 | tr /+ .~
Den APP_KEY
kann man mit folgendem Befehl generieren:
dd if=/dev/urandom bs=32 count=1 2> /dev/null | base64