PHP / Magento Dev Blog

  • Publikacje
  • O autorze
  • Kontakt

Kubernetes dla PHP developera – kubectl debugging, Deployment YAML, HPA, troubleshooting

  • 0
Henryk Tews
piątek, 21 marca 2025 / Opublikowano w Środowiska

Kubernetes pojawia się w coraz większej liczbie projektów e-commerce na poziomie infrastruktury. Jako PHP developer nie musisz pisać Helm chartów ani konfigurować RBAC – od tego są DevOps. Ale gdy deploy się wysypuje, pody crashują albo request timeout nie działa tak jak powinien – rozumienie co się dzieje wewnątrz klastra Kubernetes jest niezbędne do diagnozowania problemów. Pokazuję minimalny zestaw wiedzy który naprawdę pomaga.

(więcej…)

Wzorzec Specification – enkapsulacja reguł biznesowych, AND/OR/NOT kompozycja, testowanie

  • 0
Henryk Tews
wtorek, 04 marca 2025 / Opublikowano w Wzorce projektowe

Specification to wzorzec który pozwala enkapsulować reguły biznesowe w osobnych, komposytowalnych obiektach. Zamiast rosnącego if-elsa w serwisie albo powtarzającego się kodu filtrowania w kilku miejscach, każda reguła to osobna klasa którą można łączyć przez AND, OR i NOT. Świetnie sprawdza się przy filtrach produktów, regułach rabatowych i walidacji zamówień.

(więcej…)

Jubileusz 100 wpisów – retrospektywa 6,5 roku, PHP 7.2->8.4, Magento 2.2->2.4.8

  • 0
Henryk Tews
wtorek, 18 lutego 2025 / Opublikowano w Magento 2

Setny wpis to dobry moment na retrospektywę. Blog zaczął się w lipcu 2018 – wtedy PHP 7.2 był świeży, Magento 2.3 dopiero wychodziło, Docker był „tym nowym narzędziem” a AI coding tools nie istniały. Przez ponad 6,5 roku zebrałem tu 100 wpisów o PHP, Magento 2, wzorcach projektowych i środowiskach deweloperskich. Dziś podsumowuję największe zmiany które faktycznie wpłynęły na moją codzienną pracę.

(więcej…)

PHP 8.5 RFC – pipe operator, readonly dziedziczenie, generics dlaczego nie ma

  • 0
Henryk Tews
wtorek, 04 lutego 2025 / Opublikowano w PHP

PHP 8.5 wyjdzie prawdopodobnie w listopadzie 2025. Proces RFC jest otwarty i kilka interesujących propozycji jest już w dyskusji lub głosowaniu. Przeglądam co ma realną szansę wejść, co jest wciąż dyskutowane i czego PHP developerzy najbardziej oczekują. Żadnych fake predictions – tylko to co widać w Internals liście i wiki.php.net.

(więcej…)

Własny indekser – mview.xml, flat table, full/partial reindeksacja, triggerowane przez cron

  • 0
Henryk Tews
wtorek, 21 stycznia 2025 / Opublikowano w Magento 2

System indeksowania Magento 2 to jeden z bardziej niedocenianych mechanizmów platformy. Gdy masz własne dane które muszą być szybko dostępne – ceny z zewnętrznego ERP, stany magazynowe z WMS, własne atrybuty wyszukiwania – napisanie własnego indeksera jest często lepszym rozwiązaniem niż zapisywanie wszystkiego do EAV przy każdym zapytaniu. Pokazuję jak zbudować kompletny indekser z obsługą pełnej i częściowej reindeksacji.

(więcej…)

Trendy 2025 – FrankenPHP, AI tooling update, OpenSearch, Hyvä konsolidacja

  • 0
Henryk Tews
wtorek, 07 stycznia 2025 / Opublikowano w PHP

Nowy rok to dobry moment na przegląd tego co dzieje się w ekosystemie PHP i Magento 2. Po kilku intensywnych latach (PHP 8.0 do 8.4, Magento headless, Hyvä, AI tooling) wchodzę w 2025 z kilkoma obserwacjami które mogą mieć realny wpływ na projekty przez kolejne 12 miesięcy. Bez marketingowych bzdur – tylko to co faktycznie widać w kodzie, społeczności i na produkcji.

(więcej…)

Magento 2.4.8 – PHP 8.4 wsparcie, migracja Elasticsearch → OpenSearch, checklist upgrade

  • 0
Henryk Tews
wtorek, 31 grudnia 2024 / Opublikowano w Magento 2

Ostatni dzień 2024 roku to dobry moment na podsumowanie zmian w Magento 2.4.8 które pojawiło się w tym roku. Największa zmiana techniczna to oficjalne wsparcie PHP 8.4 i przejście z Elasticsearch na OpenSearch jako domyślny silnik wyszukiwania. Przeglądam co to oznacza dla istniejących projektów i jak wygląda migracja.

(więcej…)

LRU Cache – O(1) implementacja z HashMap + lista dwukierunkowa, per-request cache

  • 0
Henryk Tews
wtorek, 17 grudnia 2024 / Opublikowano w Algorytmy

LRU (Least Recently Used) Cache to jeden z klasycznych problemów algorytmicznych z rozmów rekrutacyjnych, ale też realna struktura danych używana w systemach produkcyjnych. Redis domyślnie używa wariantu LRU do eksmisji kluczy. PHP OPcache stosuje LRU. Pokazuję jak zaimplementować LRU Cache w O(1) dla get i put, używając hashmapy i listy dwukierunkowej – i gdzie to ma zastosowanie w e-commerce.

(więcej…)

Redis Streams – Consumer Groups, pending messages, dead letter, integracja z Magento queue

  • 0
Henryk Tews
wtorek, 03 grudnia 2024 / Opublikowano w Magento 2

Redis Streams to struktura danych wprowadzona w Redis 5.0 która łączy cechy kolejki wiadomości i niezmiennego logu zdarzeń. W porównaniu do klasycznych list Redis (LPUSH/RPOP) daje persystencję, grupy konsumentów, potwierdzenia odbioru i możliwość odczytu historii. Dla projektów gdzie RabbitMQ to za dużo infrastruktury a Redis już masz – Streams mogą zastąpić brokera wiadomości.

(więcej…)

PHP 8.4 premiera – property hooks w prod, asymmetric visibility, BcMath\Number, array_find

  • 0
Henryk Tews
wtorek, 26 listopada 2024 / Opublikowano w PHP

PHP 8.4 wyszło oficjalnie 21 listopada 2024. Pisałem o RC w lipcu i wrześniu – teraz mam kilka dni z finalną wersją i pierwsze projekty które uruchamiam na 8.4. Property hooks, asymmetric visibility, Lazy Objects, BcMath\Number – wszystko wylądowało dokładnie jak RFC obiecywało. Czas na uczciwy bilans: co od razu wchodzi do kodu, co zaskakuje i jak gładka jest migracja z 8.3.

(więcej…)

  • 2
  • 3
  • 4
  • 5
  • 6
  • 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}