Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Highlights from the Flare codebase (laracon AU)
Search
Freek Van der Herten
October 31, 2019
Technology
0
250
Highlights from the Flare codebase (laracon AU)
Freek Van der Herten
October 31, 2019
Tweet
Share
More Decks by Freek Van der Herten
See All by Freek Van der Herten
I shall define this only once
freekmurze
0
320
An Introduction to Snapshot testing
freekmurze
0
350
Event Sourcing In Laravel
freekmurze
0
190
Building a realtime dashboard with Laravel Livewire (PHPKonf)
freekmurze
0
660
A tour behind the scenes of Oh Dear (PHP Benelux)
freekmurze
2
680
A practical look at multitenancy in Laravel
freekmurze
1
280
A practical look at multitenancy in Laravel (Laracon US)
freekmurze
0
610
Highlights Flare codebase (Laracon online)
freekmurze
0
330
Introducing Mailcoach
freekmurze
1
510
Other Decks in Technology
See All in Technology
すべてが #Zenoh になる
takasehideki
0
100
Pass On What You Have Learned: Deploying to Production
ianlee1521
0
150
DevOps Topologies 10 years on: what have we learned about silos, collaboration, and flow? - Matthew Skelton, Conflux
matthewskelton
PRO
2
420
B+木入門:PHPで理解する データベースインデックスの仕組み/b-plus-tree-101
hanhan1978
5
2.7k
10年モノのレガシーPHPアプリケーションを移植しきるまでの泥臭くも長い軌跡 / legacy-php-app-migration
toshimaru
0
690
Combineを中心とした処理をSwift Concurrencyへ (これまでも調べた調査と向き合い)
fumiyasac0921
1
170
サイボウズのQAエンジニア育成
cybozuinsideout
PRO
3
550
スケジュール指定のFargate Spotと友達になれた話
news_it_enj
0
240
新卒1年目がプロジェクトを進めるときにコケたポイント
ryunakayama
1
110
プレイヤーとしてのチームのテスト力UP/Improving team skills for testing
goyoki
2
220
S3成長記録@Storage-JAWS#3
p0n
0
130
サーバーとは何かを理解して、コンテナ1つで実行しよう | PHPerKaigi2024
sadnessojisan
31
11k
Featured
See All Featured
Atom: Resistance is Futile
akmur
258
25k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
355
22k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
0
3.2k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
225
51k
The Art of Programming - Codeland 2020
erikaheidi
40
12k
Fantastic passwords and where to find them - at NoRuKo
philnash
35
2.4k
KATA
mclloyd
14
11k
Fashionably flexible responsive web design (full day workshop)
malarkey
397
65k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
A better future with KSS
kneath
230
16k
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
Rails Girls Zürich Keynote
gr2m
91
13k
Transcript
None
About me Freek Van der Herten Partner & developer at
Spatie @freekmurze freek.dev flareapp.io ohdear.app
Open source stats ± 250 packages on Packagist ± 50,000,000
total downloads ± 3 000,000 downloads a month spatie.be/open-source/packages
Highlights from the Flare codebase
A way to structure a large Laravel app
Take a look at the Flare codebase Not a sales
talk Techniques you can use in your own projects Opinionated
Short walkthrough of the UI Domains Inertia / React /
TypeScript
Let's take a look at Flare
Using domains
Using domains Term taken from DDD A sphere of knowledge
Grouping code Larger projects
Refactor to domains app/ ├── Models/ │ ├── User.php │
├── Team.php │ └── Project.php ├── Mails/ │ ├── Welcome.php │ ├── InvitedToTeam.php │ └── ApiKeyRegenerated.php └── Events/ ├── UserDeleted.php └── Project.php
Refactor to domains app/ └── Domain/ ├── Team └── Project
Show me the code
Front end
Front end “I strongly believe JavaScript is a requirement for
excellent user experiences. Not good experiences, excellent experiences.” —Seb
Front end: JavaScript Inertia Built by Jonathan Reinink Replace Blade
by React (or Vue or whatever) Makes server client communication seamless No full pages refreshes
public function index(Team $team) { return view('team.settings', collect('team')); }
public function index(Team $team) { return inertia()->render('team.settings', collect('team')); }
Show me!
In closing
Using domains stitcher.io/blog/laravel-beyond-crud-01-domain-oriented-laravel freek.dev/1371-refactoring-to-actions freek.dev/1433-supercharging-common-controllers
Front end inertiajs.com typescriptlang.org freek.dev/1391-how-to-handle-front-end-authorization-using- laravel-inertia-and-typescript
Thank you! speakerdeck.com/freekmurze/highlights-flare-codebase spatie.be/open-source freek.dev flareapp.io ohdear.app