PLONGÉEDANSL’ÉCOSYSTÈME


LARAVEL
1
PLONGÉEDANSL’ÉCOSYSTÈME


LARAVEL
2
Gabriel Pillet


@tentacode sur twitter 🐙


CTO chez Web^ID


12 ans de dev Symfony
QUI SUIS-JE ?
VS
MOI SUR ☝


SYMFONY
☝ MOI SUR


LARAVEL
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.
L’ENVIRONNEMENTDE DEV
• 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
• 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)
• 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
• 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
• 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 ?
• 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++
• 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
LESPETITSPLUS
• https://larecipe.binarytorch.com.my


• Support du Markdown, du versionning


• Super pratique / joli pour des docs de
projet ou d’API Rest par exemple
LARECIPE
LA JOLIE DOC POUR LARAVEL
• 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
• 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
• 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 »
• 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
• 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
• 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
AU DELÀDUFRAMEWORK:


LESGROSPOISSONS
• 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
• 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. 💸
• 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
• 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
L’INFRASTRUCTURE
• 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
• 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
MONEY,MONEY,MONEY
ÀVOUSDEPLONGER !
48
UN GRAND MERCI 🙏✨
Àtoi public.


👉 🙋

Plongée dans l'écosystème Laravel

  • 1.
  • 2.
  • 3.
    Gabriel Pillet @tentacode surtwitter 🐙 CTO chez Web^ID 12 ans de dev Symfony QUI SUIS-JE ?
  • 5.
  • 7.
    MOI SUR ☝ SYMFONY ☝MOI SUR LARAVEL
  • 8.
    UN FRAMEWORK COMPLÈTEMENTCOMPLET 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.
  • 10.
  • 11.
    • php artisanserve : 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 deconcert 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 Vagrantbox 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 guredocker 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 toutles 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 • Unesyntaxe 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
  • 18.
  • 19.
    • https://larecipe.binarytorch.com.my • Supportdu Markdown, du versionning • Super pratique / joli pour des docs de projet ou d’API Rest par exemple LARECIPE LA JOLIE DOC POUR LARAVEL
  • 20.
    • https://tail fl ow.github.io/laravel-orion-docs • Transformeun 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 parnuwave • 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 avecAlgolia 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 viaOAuth à 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 • Historisedes é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 directementavec 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
  • 26.
  • 27.
    • https://nwidart.com/laravel-modules • permetsimplement un découpage modulaire de votre application Laravel • propose une architecture simple pour clore les débats LARAVELMODULES FEATURES > LAYERS
  • 28.
    • Une solutionclé 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. 💸
  • 30.
    • Des CRUDsurboosté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
  • 34.
    • Dédié auxpetites 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
  • 35.
  • 41.
    • Utilise leSDK 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 interfaceavec 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
  • 47.
  • 48.
  • 53.
    UN GRAND MERCI🙏✨ Àtoi public. 👉 🙋