SlideShare a Scribd company logo
1 of 15
Download to read offline
Laravel Collection - tablice na
sterydach
Kamil Bartczak
Fullstack developer
kamilb@highsolutions.pl
Czym są Laravel Collection
Laravel Collection to obiektowa
nakładka na PHP’owe tablice.
Pozwala to na bardzo
zaawansowaną pracę z dużą ilością
danych
Jak stworzyć kolekcję?
Laravel Base Collection (nie mylić z Eloquent Collection) można tworzyć na
dwa sposoby:
● Funkcja pomocnicza collect
● Stworzenie instancji klasy Collection
Podstawowe metody kolekcji
● get(string $key) - Pobiera element o danym kluczu z
kolekcji
● push(mixed $value) - Dodaje element do kolekcji bez
klucza
● put(string $key, mixed $value) - Dodaje element do
kolekcji z konkretnym kluczem
● each(callable $callback) Iteruje poprzez całą tablicę
● forget(string $key) - Usuwa element z kolekcji
● toArray() - Zwraca tablicę z zawartością kolekcji
map
Metoda map iteruje przez kolekcję i zamienia wartość każdego elementu
kolekcji według funkcji zwrotnej (callback).
Tworzy w ten sposób nową kolekcję.
unique
Metoda unique zwraca wszystkie unikalne elementy kolekcji
Tworzy w ten sposób nową kolekcję.
pluck
Metoda pluck pobiera wszystkie wartości dla danego klucza.
Tworzy w ten sposób nową kolekcję.
sortBy
Metoda sortBy sortuje kolekcję przez dany klucz.
Tworzy w ten sposób nową kolekcję.
Fluent Interface
Kolekcje korzystają z Fluent Interface Pattern. (Łańcuchowe wywoływanie
metod). Pozwala to na o wiele czytelniejszy kod.
Podstawowy Use Case
Wykorzystywanie jako tablica
Ponieważ Laravel Collection dziedziczą po interface ArrayAccess, możemy
korzystać z kolekcji jak ze zwykłej tablicy.
Eloquent Collection(IlluminateDatabaseEloquentCollection) rozszerza Base
Collection (IlluminateSupportCollection) , dzięki czemu możemy korzystać z
wszystkich metod Base Collection uzupełnionych o metody przydatne bazodanowo
jak na przykład metoda toQuery()
Base Collection vs Eloquent Collection
Wyzwanie
1. Kiedy macie zamiar użyć tablicy, użyjcie zamiast tego
Base Collection
2. Zawsze w metodach zwracajcie i wymagajcie kolekcji
zamiast tablic (chyba, że Laravel wymusza na was
zwrot tablicy - FormRequest@rules )
3. Wykorzystajcie w pełni ogromną listę metod kolekcji
Kolekcje bardzo mocno ułatwiają pracę z dużą ilością danych.
Praca z kolekcjami też znacznie poprawi czytelność waszego
kodu.
Kontakt
kamilb@highsolutions.pl

More Related Content

More from Laravel 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 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
 
Mikrousługi w allegro
Mikrousługi w allegroMikrousługi w allegro
Mikrousługi w allegro
 

Laravel Collection - tablice na sterydach