PHP / Magento Dev Blog

  • Publikacje
  • O autorze
  • Kontakt

PHP named arguments i first-class callables – praktyczne zastosowania w pipeline

  • 0
Henryk Tews
niedziela, 06 września 2026 / Opublikowano w PHP

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

Magento 2 produkt pokazuje „In Stock” przy qty=0 – niespójność MSI i legacy stock

  • 0
Henryk Tews
środa, 02 września 2026 / Opublikowano w Magento / Adobe Commerce

Produkt pokazywał „In Stock” na stronie produktu mimo że rzeczywiście nie było go na stanie. Klienci składali zamówienia na produkt który nie mógł zostać zrealizowany. Dopiero przy tworzeniu shipmentu pojawiał się błąd. Problem dotyczył produktów konfigurowalnych z MSI. Czas naprawy: 4 godziny.

(więcej…)

Docker Compose dla Magento 2 bez DDEV – własny stack PHP 8.4, MariaDB, Redis, OpenSearch

  • 0
Henryk Tews
sobota, 29 sierpnia 2026 / Opublikowano w Środowiska

DDEV to wygodne narzędzie ale nie jedyna droga. Własny stack Docker Compose daje pełną kontrolę: dokładnie te wersje usług których potrzebujesz, własna sieć, integracja z CI/CD, możliwość wdrożenia na dowolnym serwerze bez zmian. Pokażę minimalny ale kompletny stack dla Magento 2 z PHP 8.4, MariaDB 10.6, Redis, OpenSearch i nginx.

(więcej…)

Magento 2 błędne ceny w multi-store – waluta bazowa i cache reguł cenowych

  • 0
Henryk Tews
wtorek, 25 sierpnia 2026 / Opublikowano w Magento / Adobe Commerce

Sklep z konfiguracją multi-store (5 sklepów, 3 waluty) zaczął pokazywać błędne ceny – cena w euro pojawiała się na sklepie w złotówkach i odwrotnie. Problem pojawił się po dodaniu nowego sklepu i dotyczył tylko produktów z regułami cen. Czas naprawy: 6 godzin.

(więcej…)

Wzorzec Decorator – dynamiczne zachowanie, PHP, system pluginów Magento 2

  • 0
Henryk Tews
piątek, 21 sierpnia 2026 / Opublikowano w Wzorce projektowe

Wzorzec Decorator pozwala dynamicznie dodawać zachowanie do obiektu bez modyfikacji jego klasy i bez dziedziczenia. Każdy dekorator opakowuje oryginalny obiekt i rozszerza lub modyfikuje jego działanie. W PHP i Magento 2 to jeden z najczęściej stosowanych wzorców – system pluginów Magento to de facto Decorator zaimplementowany przez framework DI.

(więcej…)

Magento 2 konto admina zablokowane przez atak brute force – odblokowanie i ochrona

  • 0
Henryk Tews
poniedziałek, 17 sierpnia 2026 / Opublikowano w Magento / Adobe Commerce

Konto administratora zostało zablokowane po ataku słownikowym – 10 000 prób logowania w ciągu godziny. Magento po 6 nieudanych próbach blokuje konto na 30 minut. Problem: atakujący ciągle resetował licznik przez zmianę IP, a prawdziwy admin nie mógł się zalogować. Czas naprawy: 1 godzina.

(więcej…)

Union-Find (Disjoint Set) – implementacja PHP, wykrywanie cykli, deduplicacja

  • 0
Henryk Tews
czwartek, 13 sierpnia 2026 / Opublikowano w Algorytmy

Union-Find (Disjoint Set Union) to struktura danych do zarządzania zbiorami rozłącznymi. Umożliwia dwie operacje w czasie niemal O(1): sprawdzenie czy dwa elementy należą do tego samego zbioru (Find) i połączenie dwóch zbiorów (Union). Algorytm pojawia się w problemach grafowych, wykrywaniu cykli i grupowaniu elementów. W Magento 2 przydaje się przy łączeniu zduplikowanych klientów i produktów.

(więcej…)

Magento 2 cron zawieszony – 50 000 pending jobów i deadlock w cron_schedule

  • 0
Henryk Tews
niedziela, 09 sierpnia 2026 / Opublikowano w Magento / Adobe Commerce

Cron Magento 2 przestał działać – zalegało ponad 50 000 niezrealizowanych jobów w tabeli cron_schedule. Emaile transakcyjne nie wychodziły, indeksery nie aktualizowały się, reguły cenowe nie odświeżały. Sklep działał normalnie dla klientów ale „od środka” był zamrożony. Czas naprawy: 3 godziny.

(więcej…)

Magento 2 – niewidoczny błąd CSS z-index spowodował 40% spadek konwersji

  • 0
Henryk Tews
niedziela, 02 sierpnia 2026 / Opublikowano w Magento / Adobe Commerce

Sklep działał normalnie, ale konwersja nagle spadła o 40% w ciągu jednego dnia. Google Analytics pokazywał ruch na poziomie normy. Problem był niewidoczny gołym okiem – tylko przy konkretnym rozmiarze ekranu przyciski w checkoucie nachodziły na siebie i były nieaktywalne. Czas diagnozy: 3 godziny, naprawy: 30 minut.

(więcej…)

GraphQL custom resolver w Magento 2 – schemat, autoryzacja, testy

  • 0
Henryk Tews
środa, 29 lipca 2026 / Opublikowano w Magento / Adobe Commerce

GraphQL w Magento 2 to nie tylko API do odczytu – możesz dodać własne typy, queries i mutations. Custom resolver to klasa PHP która odpowiada za pobranie danych dla danego pola lub query. Pokażę kompletną implementację: schemat GraphQL, resolver z autoryzacją, obsługę błędów i testy integracyjne. Na przykładzie query pobierającego historię zamówień klienta z filtrami.

(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}