Lista dwukierunkowa – implementacja od zera, SplDoublyLinkedList, tabela porównawcza
PHP array jest na tyle wszechstronna, że rzadko potrzebujemy innych struktur danych. Ale lista dwukierunkowa (doubly linked list) ma właściwości, których tablica nie oferuje – wstawianie i usuwanie elementów ze środka w O(1), bez przesuwania pozostałych elementów. Implementuję ją od zera w PHP i pokazuję kiedy warto po nią sięgnąć.
- Opublikowano w Algorytmy
GraphQL – własny resolver, schemat, autoryzacja, testowanie w DDEV
Magento 2.3 wprowadziło obsługę GraphQL jako alternatywę dla REST API. O ile REST wymaga osobnych endpointów dla każdego zasobu, GraphQL pozwala klientowi samemu określić jakich danych potrzebuje w jednym zapytaniu. Pokazuję jak napisać własny resolver i udostępnić dane przez GraphQL w module Magento 2.
- Opublikowano w Magento / Adobe Commerce
PHP 7.4 w praktyce – pułapki typed properties, hydratacja, zapowiedź PHP 8.0
PHP 7.4 wyszło w listopadzie 2019. Miałem kilka tygodni na przejście kilku modułów Magento 2 na nową wersję i wyrobienie sobie zdania. Typed properties to zmiana, która realnie wpływa na sposób pisania klas – ale ma też kilka pułapek, na które warto uważać. Pokazuję co działa świetnie, co zaskakuje i jak wygląda migracja istniejącego kodu.
- Opublikowano w PHP
Wzorzec Factory Method – Simple Factory, GoF, auto-generowane fabryki Magento 2
Operator new w kodzie produkcyjnym to sygnał ostrzegawczy. Klasa tworząca instancje innych klas bezpośrednio jest z nimi silnie sprzężona – trudno ją testować, trudno rozszerzać. Factory Method to wzorzec, który deleguje odpowiedzialność za tworzenie obiektów do dedykowanych klas. W Magento 2 fabryki są wszechobecne – i generowane automatycznie.
- Opublikowano w Wzorce projektowe
