SlideShare a Scribd company logo
Action-based Laravel
Adam Matysiak
CEO / Team Leader
adam@highsolutions.pl
Paczka: “Laravel Actions”
● https://laravelactions.com/
● https://github.com/lorisleiva/laravel-actions
● Inne podejście do organizacji kodu, skupiające się na
akcjach jakie wykonuje logika naszego kodu
Koncept
1 akcja to...
● Invokable Controller
● Plain Object
● Job
● Event Listener
● FormRequest
● Artisan Command
● Policy
Instalacja i konfiguracja
1. Posiadać repo Laravela w wersji 5.8-8.x
2.composer require lorisleiva/laravel-actions
3.php artisan make:action MyFirstAction
Action jako obiekt
● Wykonanie dowolnej operacji,
zazwyczaj przenoszonych do
klas typu Service czy metod w
Modelach
Action jako obiekt
Action jako kontroler
● 1 obiekt kontrolera może zawierać:
○ Wywołanie typu invokable
○ Autoryzację i walidację (jak FormRequest)
○ Różne response’y
○ Definicje route’a
Action jako kontroler
Action jako kontroler
Action jako kontroler
Action jako job
Action jako listener
Action jako Command
Action w jednym
● A tak naprawdę to jeden Action może być nimi
wszystkimi naraz!
○ Choć nie zawsze ma to sens :)
Case study
● Proste API, które pozwala na:
○ zarządzanie autoryzacją
○ zwracanie danych
○ przyjmowanie
wgrywanych plików
○ tworzenie zamówienia
○ generowanie PDFa
○ powiadamianie userów
Case Study - logowanie
Case study - nowe konto
Case study - generowanie PDF
Testowanie
● Testujemy tak samo jak do tej pory
● Testy End-2-end i Unit
Podsumowanie
● + Bardziej czytelna organizacja kodu
● + Łatwo znaleźć konkretną akcję wykonywaną przez
kod
● - Więcej czasu zajmie skopiowanie kodu z innego
projektu
● - Cały zespół musi poznać to podejście
Pytania?
adam@highsolutions.pl
@AdamMatysiak

More Related Content

More from HighSolutions Sp. z o.o. (11)

PDF
Laravel Poznań Meetup #7 - "Laravel nova - czy to się w ogóle opłaca"
HighSolutions Sp. z o.o.
 
PDF
Laravel Poznań Meetup #6 - "Nowości w Laravel 5.7"
HighSolutions Sp. z o.o.
 
PPTX
Laravel Poznań Meetup #4 - EloquentSequence - Historia pewnej biblioteki Open...
HighSolutions Sp. z o.o.
 
PPTX
Laravel Poznań Meetup #3 - Uruchomienie i praca z Laravel w wirtualnym konten...
HighSolutions Sp. z o.o.
 
PPTX
How business and IT should cooperate with each other to verify business model...
HighSolutions Sp. z o.o.
 
PPTX
Jak Biznes i IT powinny współpracować ze sobą by zweryfikować model biznesowy...
HighSolutions Sp. z o.o.
 
PPTX
Laravel Poznań Meetup #2 - Creating chatbots with BotMan
HighSolutions Sp. z o.o.
 
PDF
Laravel Poznań Meetup #2 - Koniec CSS? Jest Tailwind!
HighSolutions Sp. z o.o.
 
PPTX
Laravel Poznań Meetup #2 - Wykorzystanie FormRequest w Laravelu
HighSolutions Sp. z o.o.
 
PPTX
Laravel Poznań Meetup #2 - Tworzenie chatbotów z BotMan
HighSolutions Sp. z o.o.
 
PPTX
Jak błędów unikać prowadząc własną firmę i jak ją rozwijać
HighSolutions Sp. z o.o.
 
Laravel Poznań Meetup #7 - "Laravel nova - czy to się w ogóle opłaca"
HighSolutions Sp. z o.o.
 
Laravel Poznań Meetup #6 - "Nowości w Laravel 5.7"
HighSolutions Sp. z o.o.
 
Laravel Poznań Meetup #4 - EloquentSequence - Historia pewnej biblioteki Open...
HighSolutions Sp. z o.o.
 
Laravel Poznań Meetup #3 - Uruchomienie i praca z Laravel w wirtualnym konten...
HighSolutions Sp. z o.o.
 
How business and IT should cooperate with each other to verify business model...
HighSolutions Sp. z o.o.
 
Jak Biznes i IT powinny współpracować ze sobą by zweryfikować model biznesowy...
HighSolutions Sp. z o.o.
 
Laravel Poznań Meetup #2 - Creating chatbots with BotMan
HighSolutions Sp. z o.o.
 
Laravel Poznań Meetup #2 - Koniec CSS? Jest Tailwind!
HighSolutions Sp. z o.o.
 
Laravel Poznań Meetup #2 - Wykorzystanie FormRequest w Laravelu
HighSolutions Sp. z o.o.
 
Laravel Poznań Meetup #2 - Tworzenie chatbotów z BotMan
HighSolutions Sp. z o.o.
 
Jak błędów unikać prowadząc własną firmę i jak ją rozwijać
HighSolutions Sp. z o.o.
 

Laravel Poznań Meetup #16 - "Action-based Laravel"