Wzorzec Proxy kontroluje dostęp do innego obiektu. Klient myśli że rozmawiał z prawdziwym obiektem, a w rzeczywistości rozmawiał z pośrednikiem który może dodać cache, logowanie, lazy loading, kontrolę dostępu albo zdalny dostęp. W Magento 2 Proxy to wbudowany mechanizm – każda klasa z sufiksem \Proxy w kontenerze DI to właśnie ten wzorzec.

(więcej…)

Tablica haszująca (hash table) to struktura danych z O(1) dla wstawiania, wyszukiwania i usuwania w przypadku średnim. PHP używa jej wewnętrznie dla tablic – każda tablica PHP to de facto hash mapa. Ale wiedza o tym jak działa pod spodem pozwala pisać wydajniejszy kod i rozumieć dlaczego pewne operacje są szybkie a inne zaskakująco wolne.

(więcej…)

Checkout zawieszał się na kroku wyboru dostawy – spinner kręcił się w nieskończoność. Klienci nie mogli przejść dalej. Problem dotyczył 100% użytkowników na wszystkich przeglądarkach. Czas diagnozy: 2 godziny, naprawy: 20 minut.

(więcej…)

PHP 8.1 i 8.2 przyniosły named arguments i first-class callables – dwie funkcje które zmieniają sposób pisania kodu. Named arguments eliminują „argument order confusion” i poprawiają czytelność wywołań funkcji z wieloma parametrami. First-class callables zastępują Closure::fromCallable() i [$this, 'method'] czystą składnią func(...).

(więcej…)

GÓRA