SlideShare a Scribd company logo
1 of 23
Download to read offline
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.

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

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

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

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