Napisanie endpointu który zwraca JSON to prosta sprawa. Zaprojektowanie REST API które jest spójne, przewidywalne i przyjemne w użyciu – to już rzemiosło. Pokazuję zasady dobrego projektowania REST API i jak przekładają się na konkretny kod PHP, z przykładami z perspektywy developera Magento 2 który często implementuje własne API lub integruje z zewnętrznymi.
Testy jednostkowe w projektach PHP to temat który większość developerów zna teoretycznie, ale w praktyce odkłada na „kiedy będzie czas”. A czas nigdy nie przychodzi. Pokazuję jak zacząć z PHPUnit, jak pisać testy które rzeczywiście coś sprawdzają i jak mockować zależności – na przykładach z kodu który realnie wygląda jak kod produkcyjny.
Symfony to nie tylko framework – to zestaw niezależnych komponentów PHP, które możesz używać osobno w dowolnym projekcie. Magento 2 samo z nich korzysta (Console, Filesystem, Serializer). Pokazuję kilka komponentów, które realnie przydają się w codziennej pracy z PHP i Magento: Console do pisania komend CLI, Validator do walidacji danych i HttpClient do komunikacji z zewnętrznymi API.
PHP 8.0 wyszło oficjalnie 26 listopada 2020. Pisałem o zapowiedziach w lipcu – teraz gdy mam już finalną wersję, czas na pierwsze praktyczne wrażenia. Sprawdzam co działa tak jak obiecywano, co zaskoczyło i na co uważać przy migracji starszych projektów.
Wbudowany Full Page Cache Magento przechowuje strony w plikach lub Redis. Działa, ale obsługuje requesty wewnątrz PHP – czyli nginx i PHP-FPM i tak muszą wstać do każdego żądania. Varnish działa przed nginxem i serwuje strony z pamięci bez dotykania PHP. Dla sklepu z ruchem to różnica między sekundą a milisekundami odpowiedzi.
Jako PHP developer pewnie masz za sobą kontakt z jQuery i może trochę czystego JS. Vue.js to kolejny krok – reaktywny framework, który coraz częściej pojawia się w projektach e-commerce jako warstwa frontendowa przy headless Magento lub jako zamiennik starszego knockout.js. Pokazuję podstawy z perspektywy kogoś, kto na co dzień myśli w PHP.
Od Magento 2.4 Elasticsearch jest jedynym wspieranym silnikiem wyszukiwania – MySQL Search został usunięty. Dla wielu sklepów to po prostu „działa”, ale gdy klient zgłasza że „wyszukiwarka nie znajduje właściwych produktów”, zaczyna się prawdziwa praca. Pokazuję jak Magento indeksuje dane w ES, jak debugować zapytania i jak rozszerzyć indeks o własne pola.
Repository to wzorzec, który oddziela logikę biznesową od szczegółów dostępu do danych. Zamiast rozsiewać zapytania SQL lub wywołania ORM po całej aplikacji, masz jedną klasę odpowiedzialną za pobieranie i zapisywanie encji. W Magento 2 Repository jest częścią Service Contracts – to standard, nie opcja. Pokazuję jak zbudować własne Repository od zera i dlaczego warto.
Gdy sklep ma kilka tysięcy produktów z dziesiątkami atrybutów w kilku językach, zarządzanie danymi produktowymi bezpośrednio w Magento staje się prawdziwym bólem. Akeneo PIM rozwiązuje ten problem – centralizuje dane produktowe i dostarcza je do Magento (i innych kanałów) przez API. Pokazuję po co w ogóle PIM i jak wygląda integracja technicznie.
DDEV świetnie sprawdza się na co dzień, ale co jeśli potrzebujesz niestandardowej konfiguracji, której DDEV nie obsługuje? Albo chcesz rozumieć co dzieje się pod spodem? Pokazuję jak zbudować środowisko PHP od zera z czystym Dockerem i docker-compose – nginx, PHP-FPM, MySQL i Redis bez żadnych narzędzi pośrednich.
