Cześć!
<p> Nazywam się Szymon Zysk. </p>
Jestem programistą od 8 lat, obecnie pracuję w
firmie Bigger Picture.
Brałem udział przy tworzeniu takich serwisów jak:
CCC, Media Expert, Coindeal.
<p> Tablice to specjalny typ, który służy do przechowywania wartości w jednej
zmiennej. </p>
CZYM SĄ TABLICE?
TYPY TABLIC W PHP.
Numeryczna
Asocjacyjna
Wielowymiarowa
06
KIEDY WARTO UŻYWAĆ TABLIC?
Do przechowywania danych
w zakresie funkcji.
Jeśli nie zależy nam na
precyzyjnej strukturze.
Jeśli zależy nam na czasie
bardziej niż jakości lub
nasz projekt jest mały.
Jako kolekcji* lub gdy
pracujemy z ogromną
ilością danych(np. Z bazy
danych).
01
Gdy pracujemy z dużymi
plikami typu .json lub .xml.
Jeśli wymaga tego
biblioteka/framework.
02 03
04 05
<p> Zamiast tablic możemy użyć np. DTO, to poprawi naszą jakość kodu. </p>
CO ZAMIAST
TABLIC?
DLACZEGO WARTO ZAMIENIĆ TABLICE NA
OBIEKTY?
➔ Obiekty pozwalają na lepszą organizację kodu i zwiększają jego czytelność, zwłaszcza w
przypadku bardziej skomplikowanych struktur danych.
➔ Zmniejsza to szanse na błędy typu “Undefined array key”.
➔ Dużo łatwiej jest się “odnaleźć” w kodzie napisanym zgodnie z zasadami OOP* nowym
programistom w zespole.
➔ Utworzymy precyzyjne i uniwersalne struktury danych
➔ Możemy dodać np. funkcje pomocnicze do obiektu.
➔ Obiekty pozwalają na bardziej abstrakcyjne podejście do programowania.
OOP - object-oriented programming
DTO ZAMIAST TABLIC.
DTO, czyli Data Transfer Object.
To są obiekty, które przedstawiają zbiór danych(pól), opierają się o gettery.
Nie zawierają logiki biznesowej.
Za pomocą DTO możemy przesyłać dane w naszej aplikacji np. do front-endu.
JAK ZMIENIĆ TABLICĘ NA DTO?
- Można zaimplementować obiekt DTO w PHP jako klasę, która zawiera prywatne pola
danych i metody publiczne dostępu do tych pól.
- Można zastosować np. PHP Object Hydrator. Biblioteka ta pozwala na łatwe
mapowanie danych między źródłem danych a obiektami.
- Można zastosować wzorzec Chain of Responsibility do budowy obiektów DTO, gdzie
każdy obiekt odpowiada za przekształcenie jednego rodzaju danych i przekazuje je
dalej do następnego obiektu, aż do końcowego obiektu DTO. Dzięki temu, można
składać różne rodzaje danych w jednym obiekcie DTO, co ułatwia przetwarzanie
danych i zwiększa czytelność kodu.
KOLEKCJA ZAMIAST TABLIC.
Kolekcja w PHP to abstrakcyjny typ danych, który pozwala na przechowywanie i
manipulowanie grupą elementów, np. obiektów lub wartości.
W przeciwieństwie do tablic, kolekcje oferują dodatkowe funkcjonalności, takie jak
filtrowanie, sortowanie, mapowanie, grupowanie i wiele innych.
Istnieje wiele różnych implementacji kolekcji w PHP, takich jak kolekcje w bibliotece
Standard PHP Library (SPL), Collection w Frameworku Laravel, czy ArrayCollection w
bibliotece Doctrine.
DLACZEGO WARTO ZAMIENIĆ TABLICE NA KOLEKCJE?
➔ Kolekcje oferują bardziej rozbudowane funkcjonalności niż tablice. Na przykład, kolekcje
mogą udostępniać wiele metod umożliwiających łatwiejszą manipulację danymi, takie jak
sortowanie, filtrowanie, mapowanie, redukcja i wiele innych.
➔ Kolekcje są bardziej wydajne niż tablice w niektórych przypadkach. Na przykład, jeśli
chcesz przeszukać tablicę w poszukiwaniu konkretnego elementu, musisz zrobić to w pętli,
co może być kosztowne dla dużych tablic. Kolekcje natomiast oferują bardziej optymalne
rozwiązania, które pozwolą Ci znaleźć elementy szybciej.
➔ Kolekcje pozwalają na bardziej zrozumiałą i czytelną składnię. Dzięki temu, że kolekcje
oferują bardziej rozbudowane metody, kod może być bardziej klarowny i zwięzły.
ADNOTACJE
Adnotacje w PHP to specjalne komentarze
umieszczane nad kodem, które pozwalają na
dostarczenie dodatkowych informacji o typach
danych, parametrach funkcji, zmiennych i
innych elementach kodu.
Jest to minimum, które możemy zrobić, aby
kod był bardziej zrozumiały i spójny.
PHP Object
Hydrator
To lekka biblioteka, która umożliwia mapowanie tablicy na obiekt PHP.
Aby skorzystać z tej biblioteki, należy zdefiniować klasę DTO i użyć
hydrytora do przekonwertowania tablicy na obiekt DTO.
https://github.com/EventSaucePHP/ObjectHydrator
Symfony Property-Access
Biblioteka Symfony/Property-Access umożliwia dostęp do prywatnych pól i
metod obiektów PHP za pomocą specjalnych getterów i setterów. Pozwala
to na łatwe operowanie na polach obiektów bez konieczności wywoływania
ich bezpośrednio z zewnątrz.
https://symfony.com/doc/current/components/property_access.html