PHP / Magento Dev Blog

  • Publikacje
  • O autorze
  • Kontakt

Jak przygotować sklep na Q4 – checklist przed sezonem

  • 0
Henryk Tews
wtorek, 20 października 2026 / Opublikowano w E-commerce

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

  • 0
Henryk Tews
piątek, 16 października 2026 / Opublikowano w Magento / Adobe Commerce

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…)

Iterator i Generator w PHP – wzorzec i nowoczesna składnia

  • 0
Henryk Tews
poniedziałek, 12 października 2026 / Opublikowano w Wzorce projektowe

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 w PHP – memoizacja i tabulacja w praktyce

  • 0
Henryk Tews
czwartek, 08 października 2026 / Opublikowano w Algorytmy

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…)

Magento 2 Command + Message Queue – asynchroniczne operacje w tle

  • 0
Henryk Tews
niedziela, 04 października 2026 / Opublikowano w Magento / Adobe Commerce

Magento 2 Command pattern z Message Queue to połączenie dwóch mechanizmów: Command enkapsuluje operację jako obiekt, a Message Queue wykonuje ją asynchronicznie. W praktyce: zamiast wysyłać email synchronicznie w żądaniu HTTP (blokując odpowiedź), wrzucasz wiadomość do kolejki i konsumer obsłuży ją w tle. Pokażę jak to wdrożyć na przykładzie powiadomień o zamówieniu.

(więcej…)

PHP 8.4 – property hooks, asymetryczna widoczność i nowe funkcje tablic

  • 0
Henryk Tews
środa, 30 września 2026 / Opublikowano w PHP

PHP 8.4 jest dostępny od listopada 2024. Przynosi property hooks – natywną implementację getterów i setterów bez boilerplate, asymetryczną widoczność właściwości (public private(set)), nowe funkcje tablic i deprecację funkcji które nie były dotykane od PHP 4. To ewolucja która pozwala pisać bardziej zwięzły kod bez rezygnacji z enkapsulacji.

(więcej…)

Xdebug 3 z DDEV dla Magento 2 – konfiguracja PHPStorm, VS Code i profiler

  • 0
Henryk Tews
sobota, 26 września 2026 / Opublikowano w Środowiska

Xdebug 3 zmienił model konfiguracji w stosunku do wersji 2 – jedna dyrektywa xdebug.mode zastępuje kilkanaście ustawień. W połączeniu z DDEV konfiguracja debugowania dla Magento 2 jest teraz znacznie prostsza niż była 3 lata temu. Pokażę jak uruchomić step debugger w PHPStorm i VS Code, w tym debugowanie requestów HTTP, CLI i testów jednostkowych.

(więcej…)

Magento 2 Service Contracts – Repository Interface, Data Interface i di.xml

  • 0
Henryk Tews
wtorek, 22 września 2026 / Opublikowano w Magento / Adobe Commerce

Magento 2 ma wbudowany system Service Contracts oparty na interfejsach i Data Interfaces. Zamiast wstrzykiwać modele bezpośrednio, wstrzykujesz interfejsy Repository i Data Interface. To nie tylko dobre praktyki – to jedyny sposób żeby moduł działał stabilnie po aktualizacjach i był kompatybilny z innymi modułami. Pokażę jak poprawnie używać Service Contracts na przykładzie katalogu produktów.

(więcej…)

Wzorzec Proxy – lazy loading, cache, kontrola dostępu i \Proxy w Magento 2 DI

  • 0
Henryk Tews
piątek, 18 września 2026 / Opublikowano w Wzorce projektowe

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…)

Hash Table – implementacja w PHP, O(1) lookup, deduplikacja i grupowanie

  • 0
Henryk Tews
poniedziałek, 14 września 2026 / Opublikowano w Algorytmy

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…)

  • 1
  • 2
  • 3
  • Publikacje
  • O autorze
  • Kontakt

© 2026 Created by

GÓRA
Zarządzaj zgodą
Aby zapewnić jak najlepsze wrażenia, korzystamy z technologii, takich jak pliki cookie, do przechowywania i/lub uzyskiwania dostępu do informacji o urządzeniu. Zgoda na te technologie pozwoli nam przetwarzać dane, takie jak zachowanie podczas przeglądania lub unikalne identyfikatory na tej stronie. Brak wyrażenia zgody lub wycofanie zgody może niekorzystnie wpłynąć na niektóre cechy i funkcje.
Funkcjonalne Zawsze aktywne
Przechowywanie lub dostęp do danych technicznych jest ściśle konieczny do uzasadnionego celu umożliwienia korzystania z konkretnej usługi wyraźnie żądanej przez subskrybenta lub użytkownika, lub wyłącznie w celu przeprowadzenia transmisji komunikatu przez sieć łączności elektronicznej.
Preferencje
Przechowywanie lub dostęp techniczny jest niezbędny do uzasadnionego celu przechowywania preferencji, o które nie prosi subskrybent lub użytkownik.
Statystyka
Przechowywanie techniczne lub dostęp, który jest używany wyłącznie do celów statystycznych. Przechowywanie techniczne lub dostęp, który jest używany wyłącznie do anonimowych celów statystycznych. Bez wezwania do sądu, dobrowolnego podporządkowania się dostawcy usług internetowych lub dodatkowych zapisów od strony trzeciej, informacje przechowywane lub pobierane wyłącznie w tym celu zwykle nie mogą być wykorzystywane do identyfikacji użytkownika.
Marketing
Przechowywanie lub dostęp techniczny jest wymagany do tworzenia profili użytkowników w celu wysyłania reklam lub śledzenia użytkownika na stronie internetowej lub na kilku stronach internetowych w podobnych celach marketingowych.
  • Zarządzaj opcjami
  • Zarządzaj serwisami
  • Zarządzaj {vendor_count} dostawcami
  • Przeczytaj więcej o tych celach
Zobacz preferencje
  • {title}
  • {title}
  • {title}