Magento Commerce (Adobe Commerce) ma dedykowany zestaw modułów B2B – Company, Shared Catalog, Negotiable Quotes, Requisition Lists. Jeśli piszesz moduły dla sklepów B2B, musisz rozumieć jak te mechanizmy działają i jak się z nimi integrować. Pokazuję architekturę B2B od środka, typowe scenariusze i jak rozszerzać bez rozwalania wbudowanej funkcjonalności.
CQRS (Command Query Responsibility Segregation) to wzorzec architektoniczny który rozdziela operacje odczytu od operacji zapisu. Brzmi jak akademicki abstrakt, ale rozwiązuje realny problem: model danych zoptymalizowany pod zapis (relacyjny, znormalizowany, z walidacją) jest zwykle beznadziejny do odczytu (wiele joinów, skomplikowane mapowanie). CQRS pozwala mieć dwa osobne modele – jeden do zapisu, drugi do odczytu.
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.
