Voraussetzungen
composer --version
sollte über 2 sein, andernfalls upgraden. Download Composer.
sqlite3 --version
sollte über 3.35 sein andernfalls upgraden. Download and install.
Installation
Führe die Schritte einzeln aus (bearbeite zuerst den Projektnamen):
set PROJECTNAME=laravel_boilerplate
mkdir C:\Users\herwa\Development\Laravel
cd C:\Users\herwa\Development\Laravel
composer create-project --prefer-dist laravel/laravel %PROJECTNAME%
cd %PROJECTNAME%
# Erzeuge eine leere sqlite Datenbank
sqlite3 database\database.sqlite "VACUUM;"
# Lösche die aktuelle Datenbank Konfiguration aus der .env Datei
sed -i '/^DB_/d' .env
# put our own DB config at the end
echo DB_CONNECTION=sqlite >> .env
echo DB_DATABASE=C:\Users\herwa\Development\Laravel\%PROJECTNAME%\database\database.sqlite >> .env
# Migriere die Datenbank
php artisan migrate
Testen
Starte nun einfach in Deinem Projektverzeichnis den eingebauten Server
php artisan serve
Nun kannst Du mit Deinem Webbrowser mit der URL http://localhost:8000/
auf Dein Projekt zugreifen.
In die index() Funktion des Home Controllers app\Http\Controllers\HomeController.php kannst Du nun deinen Code ausprobieren. (Nicht vergessen: Mittels dd bzw dump kannst Du Inhalte von Variablen ausgeben)
Nächste Komponenten
User Login und registrieren mittels „Auth Framework“
# auth framework
composer require laravel/ui
php artisan ui bootstrap --auth
npm install
npm install resolve-url-loader@^3.1.2 --save-dev --legacy-peer-deps
npm run dev
Nun kannst Du nachdem Du den eingebauten Server mittels php artisan serve
gestartet hast wieder mit Deinem Webbrowser mit der URL http://localhost:8000/
auf Dein Projekt zugreifen. Nur diesmal siehst Du rechts oben „Log in“ bzw. „Register“. Bei Register kann sich ein Gast selber registrieren.
Wichtige packages
Log Reader
Um Deine Laravel Logfiles lesen zu können:
composer require haruncpi/laravel-log-reader
Erreichen kannst DU den Logreader dann unter https://deineserveradresse.com/admin/log-reader bzw lokal in Deiner Entwicklungsumgebung http://localhost:8000/admin/log-reader
.
Task scheduler
composer require robersonfaria/laravel-database-schedule
php artisan migrate
php artisan vendor:publish --provider="RobersonFaria\DatabaseSchedule\DatabaseSchedulingServiceProvider" --tag="config"
Erreichen kannst DU den Scheduler nun unter https://deineserveradresse.com/schedule bzw. lokal in Deiner Entwicklungsumgebung http://localhost:8000/schedule
.
User Administration mittels Voyager
Voyager ist ein Admin Panel, mit dem Man Benutzer anlegen kann, …
composer require tcg/voyager
php artisan voyager:install
Lege nun einen Admin Benutzer an, mit dem Du Dich bei Voyager anmelden kannst.
php artisan voyager:admin herwart@wermescher.fake --create
oder machen einen bestehenden Benutzer zum Admin
php artisan voyager:admin herwart@wermescher.fake
Zugreifen kannst Du auf Voyager indem Du /admin zur URL hinzufügst und somit in Deinem Webbrowser die URL http://localhost:8000/admin
eingibst.
Installiere 42 Workflows
Infos dazu gibts auch hier: https://workflows.42coders.com/ und https://github.com/42coders/workflows
Installiere 42workflows (--ignore-platform-reqs
musst Du eventuell nutzen, falls Du php 8 hast):
composer require the42coders/workflows --ignore-platform-reqs
php artisan migrate
php artisan vendor:publish --provider="the42coders\Workflows\WorkflowsServiceProvider" --tag=assets
php artisan vendor:publish --provider="the42coders\Workflows\WorkflowsServiceProvider" --tag=config
php artisan vendor:publish --provider="the42coders\Workflows\WorkflowsServiceProvider" --tag=lang
php artisan vendor:publish --provider="the42coders\Workflows\WorkflowsServiceProvider" --tag=views
php artisan migrate
Zammad API
composer require zammad/zammad-api-client-php
Nun bearbeite die Datei
C:\Users\herwa\Development\Laravel\laravel_zammad\vendor\zammad\zammad-api-client-php\src\HTTPClient.php
Und füge folgenden Code (unter dem debug-flag) ein (somit kann Guzzle die Zertifikatskontrolle ausschalten):
$verify = false;
if ( array_key_exists( 'verify', $options ) ) {
$verify = $options['verify'] ? true : false;
}