Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Highlights from the Flare codebase (laracon AU)

Highlights from the Flare codebase (laracon AU)

A1b4b398630bbd32b77a82cbc37fae9a?s=128

Freek Van der Herten

October 31, 2019
Tweet

More Decks by Freek Van der Herten

Other Decks in Technology

Transcript

  1. None
  2. About me Freek Van der Herten Partner & developer at

    Spatie @freekmurze freek.dev flareapp.io ohdear.app
  3. Open source stats ± 250 packages on Packagist ± 50,000,000

    total downloads ± 3 000,000 downloads a month spatie.be/open-source/packages
  4. Highlights from the Flare codebase

  5. A way to structure a large Laravel app

  6. Take a look at the Flare codebase Not a sales

    talk Techniques you can use in your own projects Opinionated
  7. Short walkthrough of the UI Domains Inertia / React /

    TypeScript
  8. Let's take a look at Flare

  9. Using domains

  10. Using domains Term taken from DDD A sphere of knowledge

    Grouping code Larger projects
  11. Refactor to domains app/ ├── Models/ │ ├── User.php │

    ├── Team.php │ └── Project.php ├── Mails/ │ ├── Welcome.php │ ├── InvitedToTeam.php │ └── ApiKeyRegenerated.php └── Events/ ├── UserDeleted.php └── Project.php
  12. Refactor to domains app/ └── Domain/ ├── Team └── Project

  13. Show me the code

  14. Front end

  15. Front end “I strongly believe JavaScript is a requirement for

    excellent user experiences. Not good experiences, excellent experiences.” —Seb
  16. 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
  17. public function index(Team $team) { return view('team.settings', collect('team')); }

  18. public function index(Team $team) { return inertia()->render('team.settings', collect('team')); }

  19. Show me!

  20. In closing

  21. Using domains stitcher.io/blog/laravel-beyond-crud-01-domain-oriented-laravel freek.dev/1371-refactoring-to-actions freek.dev/1433-supercharging-common-controllers

  22. Front end inertiajs.com typescriptlang.org freek.dev/1391-how-to-handle-front-end-authorization-using- laravel-inertia-and-typescript

  23. Thank you! speakerdeck.com/freekmurze/highlights-flare-codebase spatie.be/open-source freek.dev flareapp.io ohdear.app