Grafy to struktury danych, które pojawiają się w zaskakujących miejscach: drzewo kategorii w Magento, zależności między modułami, sieć powiązanych produktów, routing w aplikacjach. BFS i DFS to dwa fundamentalne algorytmy przeszukiwania grafów. Implementuję oba w PHP i pokazuję gdzie realnie je stosuję.
Magento 2 intensywnie korzysta z crona – indeksowanie, wysyłka emaili, czyszczenie sesji, synchronizacja kursów walut. Gdy cron przestaje działać, sklep zaczyna się sypać w nieoczywisty sposób: ceny się nie aktualizują, emaile nie wychodzą, indeksy się starzeją. Pokazuję jak działa system crona w Magento, jak pisać własne joby i jak diagnozować problemy.
Wzorzec Command zamienia żądanie wykonania operacji w samodzielny obiekt. To pozwala kolejkować operacje, logować je, cofać (undo), a nawet budować makra z sekwencji komend. W ekosystemie PHP pattern Command znajdziesz w Symfony Console, w Magento jako podstawę systemu kolejkowania i w każdym systemie który obsługuje historię operacji.
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.
