SlideShare a Scribd company logo
1 of 28
Download to read offline
Pułapki i często popełniane
błędy w Laravelu
1
Piotr Suchanek
Full Stack Developer
suchanekpiotr@gmail.com
2
Pułapki i często popełniane błędy w
Laravelu
Rzeczy w cudzym kodzie, które mnie
wkurzają
3
#1 - Mass Assignment
4
#1 - Mass Assignment
1. Mass Assignment Vulnerability
Dlaczego to rozwiązanie jest złe? :(
5
#1 - Mass Assignment
6
#1 - Mass Assignment
2. Konieczność filtrowania danych
7
#1 - Mass Assignment
3. Wiele punktów “wejścia”
8
#1 - Mass Assignment
Rozwiązanie?
Factory Pattern
9
#2 - Fat Models
10
#2 - Fat Models
Przyczyny powstawania “grubych” Modeli
Magiczne metody Modeli
11
#2 - Fat Models
Accessors
12
#2 - Fat Models
Accessors -> Decorator
13
#2 - Fat Models
Mutators
14
#2 - Fat Models
Mutators -> Builders
15
#2 - Fat Models
Model Events
16
#2 - Fat Models
Model Events -> Observers
17
#2 - Fat Models
Scopes
18
#2 - Fat Models
Scopes -> Repositories
19
#3 - Facades
Facades
20
#3 - Facades
Facades - Dlaczego takie złe?
1. Dostępne z każdego miejsca
2. Uzależniają od Frameworka
3. Trudniejsze testowanie
4. Brak wsparcia IDE
5. Trudniejsze zachowanie zasad SOLID
6. Problematyczne przy refaktoryzacji
21
#3 - Facades
Facades - Gdzie używać?
1. Seeders
2. Migrations
3. Helpers
lub
gdy liczy się czas ;)
22
#4 - Json Responses
23
#4 - Json Responses
Transformers Resources
24
#5 - Bonus
Relacje polimorficzne
25
#5 - Bonus
HTTP Tests
26
#6 - Reklama
27
Piotr Suchanek
suchanekpiotr@gmail.com
https://github.com/daverdalas/LaravelMeetup
28

More Related Content

More from Laravel Poland MeetUp

Laravelowe paczki do uwierzytelniania
Laravelowe paczki do uwierzytelnianiaLaravelowe paczki do uwierzytelniania
Laravelowe paczki do uwierzytelnianiaLaravel Poland MeetUp
 
Przegląd najciekawszych wtyczek do Laravela
Przegląd najciekawszych wtyczek do LaravelaPrzegląd najciekawszych wtyczek do Laravela
Przegląd najciekawszych wtyczek do LaravelaLaravel Poland MeetUp
 
Laravel Dusk - prosty przepis na testy E2E
Laravel Dusk - prosty przepis na testy E2ELaravel Dusk - prosty przepis na testy E2E
Laravel Dusk - prosty przepis na testy E2ELaravel Poland MeetUp
 
Laravel Octane - czy na pewno taki szybki?
Laravel Octane - czy na pewno taki szybki?Laravel Octane - czy na pewno taki szybki?
Laravel Octane - czy na pewno taki szybki?Laravel Poland MeetUp
 
Automatyzacja utrzymania jakości w środowisku PHP
Automatyzacja utrzymania jakości w środowisku PHPAutomatyzacja utrzymania jakości w środowisku PHP
Automatyzacja utrzymania jakości w środowisku PHPLaravel Poland MeetUp
 
Wstęp do Gitlab CI/CD w aplikacjach napisanych w Laravel
Wstęp do Gitlab CI/CD w aplikacjach napisanych w LaravelWstęp do Gitlab CI/CD w aplikacjach napisanych w Laravel
Wstęp do Gitlab CI/CD w aplikacjach napisanych w LaravelLaravel Poland MeetUp
 
Laravel Collection - tablice na sterydach
Laravel Collection - tablice na sterydachLaravel Collection - tablice na sterydach
Laravel Collection - tablice na sterydachLaravel Poland MeetUp
 
Speed up web API with Laravel and Swoole using Docker
Speed up web API with Laravel and Swoole using DockerSpeed up web API with Laravel and Swoole using Docker
Speed up web API with Laravel and Swoole using DockerLaravel Poland MeetUp
 
Przetwarzanie Asynchroniczne i Promises w Laravel
Przetwarzanie Asynchroniczne i Promises w LaravelPrzetwarzanie Asynchroniczne i Promises w Laravel
Przetwarzanie Asynchroniczne i Promises w LaravelLaravel Poland MeetUp
 
Jak stworzyliśmy system kudosów w Laravelu i Slacku
Jak stworzyliśmy system kudosów w Laravelu i SlackuJak stworzyliśmy system kudosów w Laravelu i Slacku
Jak stworzyliśmy system kudosów w Laravelu i SlackuLaravel Poland MeetUp
 

More from Laravel Poland MeetUp (20)

Laravelowe paczki do uwierzytelniania
Laravelowe paczki do uwierzytelnianiaLaravelowe paczki do uwierzytelniania
Laravelowe paczki do uwierzytelniania
 
Przegląd najciekawszych wtyczek do Laravela
Przegląd najciekawszych wtyczek do LaravelaPrzegląd najciekawszych wtyczek do Laravela
Przegląd najciekawszych wtyczek do Laravela
 
Walidacja w Laravelu
Walidacja w LaraveluWalidacja w Laravelu
Walidacja w Laravelu
 
(prawie) Wszystko o Tinkerze
(prawie) Wszystko o Tinkerze(prawie) Wszystko o Tinkerze
(prawie) Wszystko o Tinkerze
 
Laravel Dusk - prosty przepis na testy E2E
Laravel Dusk - prosty przepis na testy E2ELaravel Dusk - prosty przepis na testy E2E
Laravel Dusk - prosty przepis na testy E2E
 
Laravel Octane - czy na pewno taki szybki?
Laravel Octane - czy na pewno taki szybki?Laravel Octane - czy na pewno taki szybki?
Laravel Octane - czy na pewno taki szybki?
 
Laravel Jobs i PHP8
Laravel Jobs i PHP8Laravel Jobs i PHP8
Laravel Jobs i PHP8
 
Wszystko o Laravel Livewire
Wszystko o Laravel Livewire Wszystko o Laravel Livewire
Wszystko o Laravel Livewire
 
Laravel/PHP - zderzenie z PDFami
Laravel/PHP - zderzenie z PDFamiLaravel/PHP - zderzenie z PDFami
Laravel/PHP - zderzenie z PDFami
 
Action-based Laravel
Action-based LaravelAction-based Laravel
Action-based Laravel
 
Automatyzacja utrzymania jakości w środowisku PHP
Automatyzacja utrzymania jakości w środowisku PHPAutomatyzacja utrzymania jakości w środowisku PHP
Automatyzacja utrzymania jakości w środowisku PHP
 
Wstęp do Gitlab CI/CD w aplikacjach napisanych w Laravel
Wstęp do Gitlab CI/CD w aplikacjach napisanych w LaravelWstęp do Gitlab CI/CD w aplikacjach napisanych w Laravel
Wstęp do Gitlab CI/CD w aplikacjach napisanych w Laravel
 
Laravel Collection - tablice na sterydach
Laravel Collection - tablice na sterydachLaravel Collection - tablice na sterydach
Laravel Collection - tablice na sterydach
 
Laravel 8.0 - co nowego?
Laravel 8.0 - co nowego?Laravel 8.0 - co nowego?
Laravel 8.0 - co nowego?
 
AOP w Laravel
AOP w LaravelAOP w Laravel
AOP w Laravel
 
Speed up web API with Laravel and Swoole using Docker
Speed up web API with Laravel and Swoole using DockerSpeed up web API with Laravel and Swoole using Docker
Speed up web API with Laravel and Swoole using Docker
 
Laravel 6.0 - co nowego?
Laravel 6.0 - co nowego?Laravel 6.0 - co nowego?
Laravel 6.0 - co nowego?
 
Przetwarzanie Asynchroniczne i Promises w Laravel
Przetwarzanie Asynchroniczne i Promises w LaravelPrzetwarzanie Asynchroniczne i Promises w Laravel
Przetwarzanie Asynchroniczne i Promises w Laravel
 
KPI w projektach IT
KPI w projektach ITKPI w projektach IT
KPI w projektach IT
 
Jak stworzyliśmy system kudosów w Laravelu i Slacku
Jak stworzyliśmy system kudosów w Laravelu i SlackuJak stworzyliśmy system kudosów w Laravelu i Slacku
Jak stworzyliśmy system kudosów w Laravelu i Slacku
 

Pułapki i często popełnane błędy w Laravelu