Czwarty kwartał to dla większości sklepów e-commerce 40-60% rocznego obrotu. Black Friday, Cyber Monday i świąteczne zakupy tworzą ruch wielokrotnie przekraczający średnią. Sklepy, które nie przygotowały się technicznie, tracą zamówienia nie na rzecz konkurencji – po prostu nie wytrzymują obciążenia. Poniżej lista kontrolna, którą przechodzę z klientami przed każdym sezonem.

(więcej…)

Custom Admin Grid w Magento 2 z UI Component

Własna siatka administracyjna (admin grid) w Magento 2 to zadanie, które pojawia się przy każdym większym module. Magento dostarcza tu cały UI Component framework – deklaratywny XML definiuje kolumny, filtry i akcje, a PHP dostarcza tylko DataProvider. Pokazuję minimalny, ale kompletny przykład od migracji bazy przez model po listing.xml.

(więcej…)

Wzorzec Iterator definiuje sposób sekwencyjnego dostępu do elementów kolekcji bez ujawniania jej wewnętrznej struktury. PHP implementuje go przez interfejsy Iterator i IteratorAggregate. Generatory (dostępne od PHP 5.5) to składniowy cukier który znacznie upraszcza pisanie iteratorów – szczególnie przy leniwym generowaniu dużych zbiorów danych.

(więcej…)

Dynamic programming to technika rozwiązywania problemów przez rozbicie ich na mniejsze podproblemy i zapamiętanie wyników. W PHP stosuje się ją rzadziej niż w językach niskopoziomowych, ale pojawia się wszędzie tam gdzie naiwna rekursja jest za wolna. Pokazuję dwa podejścia: memoizację (top-down) i tabulację (bottom-up) na kilku konkretnych przykładach.

(więcej…)

GÓRA