PHP Enumeracje zaawansowane – backed enums, metody, interfejsy, Magento 2
Enumy weszły do PHP w wersji 8.1 i są czymś więcej niż tylko typowaną listą stałych. Backed enums z wartościami string lub int, metody na enumach, implementacja interfejsów, cases jako argumenty funkcji – to narzędzia które eliminują całą klasę błędów związanych z magic strings i niezwalidowanymi wartościami. Pokażę wszystkie możliwości z praktycznymi przykładami z Magento 2.
- Opublikowano w PHP
MSI – Multi Source Inventory: algorytm doboru źródeł, własny SSA
Multi Source Inventory (MSI) to jeden z największych refaktoringów w historii Magento 2 – wprowadzony w wersji 2.3. Zamiast jednego globalnego stanu magazynowego, produkty mogą mieć stany w wielu źródłach (magazyny, sklepy stacjonarne, dropshipping). Algorytm doboru źródeł (Source Selection Algorithm) decyduje skąd realizować zamówienie. Pokażę architekturę MSI, jak działa domyślny algorytm i jak napisać własny.
- Opublikowano w Magento 2
Wzorzec Flyweight – współdzielenie obiektów, cache instancji, Magento 2
Flyweight to wzorzec strukturalny który minimalizuje zużycie pamięci przez współdzielenie jak największej ilości danych między podobnymi obiektami. Zamiast tworzyć tysiące obiektów z powtarzającymi się danymi – tworzysz jeden obiekt i referencje do niego. W Magento 2 ten wzorzec pojawia się w wielu miejscach: tłumaczenia, konfiguracja sklepu, obiekty EAV. Pokażę implementację od podstaw i jak go rozpoznać w istniejącym kodzie.
- Opublikowano w Wzorce projektowe
Skip List – probabilistyczna struktura danych O(log n), implementacja w PHP
Skip List to probabilistyczna struktura danych wynaleziona przez Williama Pugha w 1990 roku. Łączy prostotę listy jednokierunkowej z wydajnością drzewa binarnego – operacje wyszukiwania, wstawiania i usuwania działają w O(log n) średnio, bez potrzeby balansowania jak w AVL czy Red-Black Tree. W PHP jest rzadko używana, ale świetnie ilustruje jak losowość może zastąpić złożone algorytmy balansowania.
- Opublikowano w Algorytmy
