Trie (drzewo prefiksowe) to struktura danych zoptymalizowana pod wyszukiwanie słów i prefiksów. Zamiast porównywać każde słowo ze słownikiem, Trie przechodzi po literach – każdy węzeł to jedna litera, każda ścieżka od korzenia to słowo. Autouzupełnianie w wyszukiwarce, walidacja SKU, wykrywanie spamu – Trie pojawia się w e-commerce częściej niż myślisz. Implementuję od zera w PHP z praktycznymi przykładami.
Od roku intensywnie używam narzędzi AI w codziennej pracy z PHP i Magento 2. GitHub Copilot, Claude, ChatGPT, lokalne modele przez Ollama – przetestowałem sporo. Czas na uczciwe podsumowanie: gdzie AI realnie oszczędza czas, gdzie zawodzi i jak nie wpaść w pułapkę ślepego ufania generowanemu kodowi.
Magento 2 REST API to potężne narzędzie – i potencjalny wektor ataku jeśli jest źle skonfigurowane. Domyślnie wiele endpointów jest dostępnych publicznie lub wymaga jedynie tokenu klienta który można wyprowadzić z frontendowej aplikacji. Pokazuję jak prawidłowo zabezpieczyć API: tokeny OAuth, rate limiting, ACL i monitoring podejrzanych requestów.
PHP jest synchroniczny z natury – jeden request, jeden wątek, czekaj na bazę, czekaj na API, czekaj na plik. Ale od PHP 8.1 mamy Fibers, a ReactPHP istnieje od lat i daje pełną asynchroniczność opartą na event loop. Pokazuję kiedy to ma realne zastosowanie, jak działa event loop w PHP i jak napisać prosty serwer HTTP oraz klienta który odpytuje kilka API równolegle.
Next.js to React framework który rozwiązuje problem SEO i wydajności aplikacji SPA – renderuje strony po stronie serwera (SSR) lub generuje statycznie (SSG), tak jak klasyczne PHP aplikacje. Dla PHP developera Next.js ma znajomą strukturę: routing oparty na plikach, server-side rendering, API routes jako własny backend. Pokazuję podstawy z perspektywy kogoś kto myśli w PHP i Magento.
Visitor to jeden z trudniejszych wzorców GoF do zrozumienia, ale rozwiązuje bardzo konkretny problem: chcesz dodać nową operację do grupy powiązanych klas bez modyfikowania tych klas. Zamiast dodawać metodę do każdej klasy, tworzysz Visitora który „odwiedza” każdą z nich. Szczególnie przydatny przy AST (drzewach składniowych), formatowaniu danych i eksporcie do różnych formatów.
Luma – domyślny motyw Magento 2 – ma poważny problem z wydajnością. Dziesiątki plików JS, jQuery, RequireJS, knockout.js i plik CSS liczący setki KB. Hyvä (wymawiane „hiuva”, po fińsku „dobry”) to alternatywny motyw który wyrzuca ten stack i zastępuje go Alpine.js i Tailwind CSS. Wyniki PageSpeed skaczą z 30-40 do 90+. Pokazuję architekturę i jak zacząć.
PHP 8.4 planowane jest na listopad 2024 i ma przynieść dwie zmiany które zmienią sposób pisania klas PHP – property hooks i asymmetric visibility. Property hooks to coś czego brakowało od lat: możliwość definiowania logiki get/set bezpośrednio przy właściwości, bez osobnych metod. Asymmetric visibility pozwala na readonly-like zachowanie z możliwością wewnętrznej modyfikacji. Przeglądam RFC które przeszły głosowanie.
Checkout w Magento 2 to jeden z najtrudniejszych obszarów do customizacji – głęboko zagnieżdżony JSON konfiguracji knockout.js, wielowarstwowe mixiny JavaScript i kilkanaście kroków przetwarzania po stronie PHP. Pokazuję jak dodać własne pole do formularza checkout, własną walidację i jak zmodyfikować kroki procesu bez rozbijania istniejącej funkcjonalności.
PHP 8.3 wyszło oficjalnie 23 listopada 2023. W maju pisałem o zapowiedziach – teraz mam kilka dni na sprawdzenie finalnej wersji. Nie ma tu rewolucji jak w PHP 8.0 czy enumów z 8.1, ale kilka zmian wchodzi do codziennego kodu od razu. Typed constants i json_validate() to te które stosuję natychmiast.
