PHP / Magento Dev Blog

  • Publikacje
  • O autorze
  • Kontakt

PHP Enumeracje zaawansowane – backed enums, metody, interfejsy, Magento 2

  • 0
Henryk Tews
środa, 03 czerwca 2026 / Opublikowano w PHP

Enumy weszły do PHP w wersji 8.1 i są czymś więcej niż tylko typowaną listą stałych. Backed enums z wartościami string lub int, metody na enumach, implementacja interfejsów, cases jako argumenty funkcji – to narzędzia które eliminują całą klasę błędów związanych z magic strings i niezwalidowanymi wartościami. Pokażę wszystkie możliwości z praktycznymi przykładami z Magento 2.

(więcej…)

MSI – Multi Source Inventory: algorytm doboru źródeł, własny SSA

  • 0
Henryk Tews
sobota, 30 maja 2026 / Opublikowano w Magento 2

Multi Source Inventory (MSI) to jeden z największych refaktoringów w historii Magento 2 – wprowadzony w wersji 2.3. Zamiast jednego globalnego stanu magazynowego, produkty mogą mieć stany w wielu źródłach (magazyny, sklepy stacjonarne, dropshipping). Algorytm doboru źródeł (Source Selection Algorithm) decyduje skąd realizować zamówienie. Pokażę architekturę MSI, jak działa domyślny algorytm i jak napisać własny.

(więcej…)

Wzorzec Flyweight – współdzielenie obiektów, cache instancji, Magento 2

  • 0
Henryk Tews
wtorek, 26 maja 2026 / Opublikowano w Wzorce projektowe

Flyweight to wzorzec strukturalny który minimalizuje zużycie pamięci przez współdzielenie jak największej ilości danych między podobnymi obiektami. Zamiast tworzyć tysiące obiektów z powtarzającymi się danymi – tworzysz jeden obiekt i referencje do niego. W Magento 2 ten wzorzec pojawia się w wielu miejscach: tłumaczenia, konfiguracja sklepu, obiekty EAV. Pokażę implementację od podstaw i jak go rozpoznać w istniejącym kodzie.

(więcej…)

Skip List – probabilistyczna struktura danych O(log n), implementacja w PHP

  • 0
Henryk Tews
piątek, 22 maja 2026 / Opublikowano w Algorytmy

Skip List to probabilistyczna struktura danych wynaleziona przez Williama Pugha w 1990 roku. Łączy prostotę listy jednokierunkowej z wydajnością drzewa binarnego – operacje wyszukiwania, wstawiania i usuwania działają w O(log n) średnio, bez potrzeby balansowania jak w AVL czy Red-Black Tree. W PHP jest rzadko używana, ale świetnie ilustruje jak losowość może zastąpić złożone algorytmy balansowania.

(więcej…)

Kurs Gita #7 – debugging i ratowanie: bisect, reflog, reset vs revert

  • 0
Henryk Tews
poniedziałek, 18 maja 2026 / Opublikowano w Git

Każdy programista prędzej czy później popsuje coś w repozytorium. Dobre wiadomości: Git rzadko traci dane na zawsze – reflog rejestruje każdą zmianę HEAD. Bisect skraca wielogodzinne szukanie regresji do kilku minut. Reset ma trzy tryby których mylenie kończy się bólem. Revert to bezpieczna alternatywa na publicznych branchach. Ten wpis to mapa ratunkowa.

(więcej…)

Kurs Gita #6 – hooki i automatyzacja: pre-commit, PHPStan, commit-msg, DDEV

  • 0
Henryk Tews
sobota, 16 maja 2026 / Opublikowano w Git

Git hooks to skrypty uruchamiane automatycznie przy operacjach Gita. Pre-commit hook uruchomiony przed każdym commitem eliminuje klasę błędów zanim trafią do historii. Commit-msg wymusza konwencję wiadomości. Pre-push chroni zdalny branch przed broken code. Pokażę jak to skonfigurować w projekcie Magento 2 z DDEV.

(więcej…)

Kurs Gita #5 – workflow zespolowy: Git Flow, trunk-based, PR, code review

  • 0
Henryk Tews
czwartek, 14 maja 2026 / Opublikowano w Git

Wybór workflow gitowego ma większy wpływ na produktywność zespołu niż większość decyzji technicznych. Git Flow, GitHub Flow, trunk-based development – to kompletne modele pracy, code review i deploymentu. Pokażę kiedy co stosować i co odróżnia dobry pull request od złego.

(więcej…)

Kurs Gita #4 – praca zdalna: remote, fetch vs pull, force-with-lease

  • 0
Henryk Tews
wtorek, 12 maja 2026 / Opublikowano w Git

Praca z remote to codzienność w każdym zespole – ale wiele osób używa tylko git pull i ma mglistą świadomość co się właściwie dzieje. Tracking refs, różnica między fetch a pull, kiedy --force-with-lease zamiast --force, i jak naprawdę działają zdalne branche to wiedza, która ratuje przed nieodwracalnymi błędami.

(więcej…)

Kurs Gita #3 – branching i merge: strategie, konflikty, fast-forward

  • 0
Henryk Tews
niedziela, 10 maja 2026 / Opublikowano w Git

Pytanie „merge czy rebase?” to jedno z najczęstszych w zespołach używających Gita. Obie strategie osiągają ten sam efekt – integrację zmian – ale produkują zupełnie inną historię. Nie ma jednej właściwej odpowiedzi, jest kontekst. Pokażę kiedy co stosować, jak działają konflikty, i dlaczego fast-forward to nie to samo co „bez merge commita”.

(więcej…)

Kurs Gita #2 – commity i historia: rebase -i, cherry-pick, bisect

  • 0
Henryk Tews
piątek, 08 maja 2026 / Opublikowano w Git

Historia commitów to dokumentacja projektu – czytają ją inni programiści, git bisect po niej szuka błędów, a git blame tłumaczy decyzje. Dobre wiadomości commitów, umiejętność porządkowania historii przed merge i znajomość cherry-pick oraz bisect to narzędzia, które odróżniają kogoś kto „używa Gita” od kogoś kto nim „zarządza”.

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