====== Laravel ======
[[/informatique/php/laravel_1|Ancienne page Laravel]] avant la version 12, mais avec plein de packages ;-)
===== Installation =====
==== Version 1 ====
Plusieurs façons d'installer Laravel:
* Avec son [[https://laravel.com/docs/12.x/installation#installing-php|Installateur]]
* Qui vous propose de choisir un [[https://laravel.com/docs/12.x/starter-kits#creating-an-application|Starter-Kit]] entre Vue, React ou Livewire
* pour d'autres starter-kit voir la suite
Ou "à la mano" :
composer create-project "laravel/laravel" mon-projet
cd mon-projet
composer update
npm install
Pour continuer avec [[https://laravel.com/docs/12.x/sail|sail]] pour dockeriser les services web, db, redis,...
composer require laravel/sail --dev
./artisan sail:install
./artisan sail:publish
ln -s ./vendor/bin/sail ./sail
* ''sail:install'' demande quels services activer, il créé le ''docker-compose'' correspondants.
* Le ''sail:publish'' copie les configurations docker pour les customiser au besoin
Adapter le ''.env'' pour sélectionner les services db, session, queue, cache ainsi que le mapping de ports pour docker pour éviter les conflits: ''APP_PORT'', ''FORWARD_DB_PORT''
./sail up -d
==== Version 2 ====
## Install with sail
```bash
# curl -s "https://laravel.build/?with=mariadb,redis,selenium,mailpit&devcontainer" | bash
curl -s "https://laravel.build/mon-projet-app?with=mariadb,redis" | bash
latest: Pulling from laravelsail/php84-composer
Digest: sha256:a2716e93e577c80bca7551126056446c1e06cb141af652ee6932537158108400
Status: Image is up to date for laravelsail/php84-composer:latest
WARN TTY mode requires /dev/tty to be read/writable.
Creating a "laravel/laravel" project at "./financial-stocks-market-app"
Installing laravel/laravel (v12.9.0)
...
```
## edit .env
pour éviter conflit avec serveurs locaux, droits utilisateurs...
WWWGROUP=1001
WWWUSER=1001
APP_PORT=3000
FORWARD_DB_PORT=3308
DB_DATABASE=financial-stocks-market
DB_USERNAME=root
DB_PASSWORD=root
SESSION_DRIVER=redis
CACHE_STORE=redis
## util
ln -s vendor/bin/sail ./sail
## Config docker
Pour modifier la config docker
```
./sail up -d
./sail artisan sail:publish
./sail down
```
## Activer supervisord dans docker/8.4/supervisord.conf
[program:horizon]
command=/usr/bin/php /var/www/html/artisan horizon
autostart=true
autorestart=true
user=sail
redirect_stderr=true
stdout_logfile=/var/www/html/storage/logs/horizon.log
stopwaitsecs=360
## Reconstruire les containers dockers et relancer sail
./sail build
./sail up -d
## Horizon to view queue workers
./sail composer require laravel/horizon
./sail artisan horizon:install
## debugbar
./sail composer require barryvdh/laravel-debugbar --dev
## filament
./sail composer require filament/filament:"^4.0" --update-with-all-dependencies
./sail artisan filament:install --panels
## create database tables
./sail artisan migrate:fresh
## filamanent user
./sail artisan make:filament-user --name="SuperMan" --email="superman@internet.eu" --password="secret123"
## javascript stuff
./sail npm install
./sail npm run build
## Yeah!
- http://localhost:3000/
- http://localhost:3000/admin
==== Autres starter-kits ====
* [[https://laraveldaily.com/post/how-to-install-laravel-breeze-laravel-12|How to (Still) Use Laravel Breeze in Laravel 12]]
* [[https://github.com/LaravelDaily/starter-kit|Blade Starter Kit]]