Après une douzaine d'années à faire du développement backend sur Symfony, je me retrouve aujourd'hui directeur technique d'une agence qui travaille exclusivement sur Laravel, quel choc !
En France quand on parle de Laravel, le débat tourne vite au troll (parce que Symfony = cocorico, donc Laravel forcément = satan). Mais loin des clichés Laravel est un framework étonnant qui, en plus d'être très accessible, se démarque par un écosystème varié et complet, qui permet d'économiser le développement de fonctionnalités génériques (panneau d'admin, CRUD, gestion des abonnements, authentification, etc.).
L'écosystème Laravel est composé de projets open-source, mais aussi de projets SaaS complets qui peuvent vraiment changer la donne (je suis par exemple tombé amoureux de Laravel Forge), mais est-ce que la France est prête pour le business à l'américaine ?
8. UN FRAMEWORK COMPLÈTEMENT COMPLET
LE COEUR DE LARAVEL💖
HTTP (Request / Response), Routing, Controllers, Templating
(Blade), ORM (Eloquent), Gestion des users et sécurité
(Guards, Policies), Formulaires et Validation (FormRequest),
Traduction, Noti
fi
cations (Mails, Slack, etc.), Middlewares,
Services, Gestion des erreurs, Cli, Logs, Événements, Jobs,
Workers, Crons (Scheduler), etc.
11. • php artisan serve : lance un serveur PHP
(monothread) -> http://127.0.0.1:8000
• php artisan make:truc : génère un squelette
de code (controller, command, mail, etc.)
• php artisan tinker : debug en CLI
• caches, migrations, workers, mode
maintenance…
PHP ARTISAN
LE CLI ÀTOUT FAIRE DE LARAVEL
12. • Travail de concert avec Homebrew
• Installe nginx, php, mysql
• Permet de travailler avec plusieurs versions de
PHP
• Fait correspondre une arborescence (votre dossier
Workspace par ex) avec des noms de domaines
~/Workspace/moulinator -> http://moulinator.test
• valet:share 😎
LARAVELVALET
UN MAJORDOME POUR VOTRE ENV DE DEV (MAC)
13. • Une Vagrant box of
fi
cielle fourni par
Laravel
• Des dépendances optionnelles en
renfort pour la majorité de vos projets
via un
fi
chier de con
fi
guration
LARAVELHOMESTEAD
UNE MACHINE VIRTUELLE OPTIS OIGNONS
14. • Sail précon
fi
gure docker et votre docker-
compose.yml par projet pour un bon
démarrage
• sail permet de lancer des commandes
dans les containers de manière simple :
php artisan queue:work -> sail artisan
queue:work
LARAVELSAIL
SAUVONS LES BALEINES
15. • https://github.com/barryvdh/laravel-
debugbar
• Créé par dessus http://phpdebugbar.com
• Ajoute des infos sur les requêtes, les
routes, les events, les logs, etc.
LARAVEL-DEBUGBAR
COMMENT ÇA, C’EST PAS DÉJÀ DANS LARAVEL ?
16. • Récupère tout les appels HTTP,
commandes, jobs, schedulers etc. et
agglomère des données de logs
• Permet d’accéder au détail de chaque item
: les requêtes, les noti
fi
cations sortantes,
les inputs (pour les jobs par exemple)
• L’accès à l’interface peut être restreint (par
env ou par IP par exemple)
LARAVELTELESCOPE
LA DEBUGBAR++
17. • https://laravel-mix.com
• Une syntaxe simple qui répond au
maximum au besoin de compilation des
frontend actuels (compilation des
préprocesseurs, mini
fi
cation, versionning)
• Permet de transmettre les variables d’env
au frontend
LARAVELMIX
WEBPACK, MAIS EN MOINS GALÈRE
20. • https://tail
fl
ow.github.io/laravel-orion-docs
• Transforme un Model Eloquent en CRUD
complet
• Gestion de la recherche, des
fi
ltres, de la
pagination et des relations
• Génération des speci
fi
cations OpenAPI
• Peut vivre à côté d’API Rest plus spéci
fi
ques « fait
maison »
LARAVELORION
DES CRUD REST POUR VOS MODÈLES
21. • https://lighthouse-php.com par nuwave
• Utilise les modèles Eloquent pour créer le
schéma GraphQL et les requêtes associées
• Gère les relations, la validation
• Gère l’authenti
fi
cation
• Répond à des problématiques de
performances, de cache liées à GraphQL
LIGHTHOUSE
POUR FAIRE DU GRAPHQLAVEC LARAVEL
22. • S’intègre avec Algolia ou Meilisearch
• Rends la synchronisation des index facile
avec vos données Eloquent
• Utilise des observers et permet aussi la
synchronisation asynchrone
• Fournit des commandes cli pour
importer les données initiales
LARAVELSCOUT
REND VOS MODÈLES « RECHERCHABLE »
23. • S’authenti
fi
er via OAuth à Facebook,
Twitter, LinkedIn, Google, GitHub, GitLab
et Bitbucket
• Pas besoin de connaitre tous les SDKs
LARAVELSOCIALITE
FACILITE LA CONNECTION VIA D’AUTRES PROVIDERS OAUTH
24. • https://spatie.be/docs/laravel-activitylog
• Historise des évènements (création,
modi
fi
cation, suppression) sur des
modèles Eloquent
• Pratique pour faire de la traçabilité
ACTIVITYLOG
L’HISTORIQUE MÉTIER DE VOTRE APP
🤯 Découvrez le nombre incroyable
de contributions de spatie à PHP et Laravel
https://spatie.be/open-source
25. • S’interface directement avec Stripe (ou
Paddle)
• Pose l’architecture d’une base de données
permettant de gérer un work
fl
ow de
paiement complet
• Gestion des clients, des moyens de
paiement, des souscriptions, des factures,
etc.
LARAVELCASHIER
GESTION DES PAIEMENTS AVEC STRIPE / PADDLE
27. • https://nwidart.com/laravel-modules
• permet simplement un découpage
modulaire de votre application Laravel
• propose une architecture simple pour
clore les débats
LARAVELMODULES
FEATURES > LAYERS
28. • Une solution clé en main aux
souscriptions de vos projets SAAS :
période d’essai, différents plans,
paiement « par siège », factures, etc.
• Frontend et backend compris !
• Isolé du reste de votre application
LARAVELSPARK
FACTURER LE CLIENT, C’EST IMPORTANT. 💸
29.
30. • Des CRUD surboostés à partir de vos
modèles Eloquent
• Faites parler vos données avec des
graphs
• La possibilité de customiser vos champs
à votre guise (voir web-id-fr/cms 😎)
LARAVELNOVA
UN (TRÈS) JOLI BACKOFFICE
31.
32.
33.
34. • Dédié aux petites apps ou au micro-
services
• Un mini Laravel avec les fonctionalités
vitales : Routing, Middleware, Controllers,
Requests, Response, Validation
• Pas d’Eloquent par défaut, mais possibilité
d’activer les features de Laravel une à une
LARAVELLUMEN
LE MICROFRAMEWORK SAUCE LARAVEL
41. • Utilise le SDK de forge pour créer des
« Rewiew Apps » à la volée
• Pratique pour auto générer des
environnement de test par branche git
de feature
• Projet open-source poussin, soyez
aimables 🐣
WEB-ID-FR/RADIS
REVIEW APPS DEPLOYED IN SECONDS
42. • Une interface avec l’historique des jobs, dont les
échoués, avec des logs
• La possibilité de restreindre l’accès par IP ou
type d’environements
• Un alerting automatique (SMS, Email et Slack) en
cas d’attente trop longue
• Une con
fi
guration avancée mais simple (nombre
de process, stratégie de load balancing)
LARAVELHORIZON
UNE INTERFACE « DASHBOARD »À VOS WORKERS