PHP / Magento Dev Blog

  • Home

Magento 2 vs Shopware vs PrestaShop: when to choose which

  • 0
Henryk Tews
Sunday, 07 June 2026 / Published in E-commerce

Choosing an e-commerce platform is a decision for several years and several hundred thousand zlotys. Magento 2, Shopware 6 and PrestaShop are three different philosophies – and three different use cases. None is “best” in the abstract. The question is: which is best for your specific project.

(more…)

PHP Enums advanced – backed enums, methods, interfaces, Magento 2

  • 0
Henryk Tews
Wednesday, 03 June 2026 / Published in PHP

Enums arrived in PHP 8.1 and are much more than a typed list of constants. Backed enums with string or int values, methods on enums, interface implementation, cases as function arguments – these are tools that eliminate an entire class of errors related to magic strings and unvalidated values. I show all the capabilities with practical examples from Magento 2.

(more…)

Migrating from Magento 1: why delay is a growing risk

  • 0
Henryk Tews
Monday, 01 June 2026 / Published in E-commerce

Magento 1 reached End of Life in June 2020. That is over five years without official security patches. Despite this, some stores still run on this platform – often because it “somehow works” and migration seems costly and risky. Both arguments are true. But the risk of staying on M1 grows every month.

(more…)

MSI – Multi Source Inventory: source selection algorithm, custom SSA

  • 0
Henryk Tews
Saturday, 30 May 2026 / Published in Magento / Adobe Commerce

Multi Source Inventory (MSI) is one of the largest refactorings in Magento 2 history – introduced in version 2.3. Instead of a single global stock state, products can have stock in multiple sources (warehouses, physical stores, dropshipping). The Source Selection Algorithm decides which source to fulfil the order from. I show the MSI architecture, how the default algorithm works, and how to write a custom one.

(more…)

Magento 2: is it worth it and how much does implementation cost

  • 0
Henryk Tews
Thursday, 28 May 2026 / Published in E-commerce

The question “how much does Magento 2 cost?” comes up regularly and regularly has no simple answer. The range of quotes on the Polish market is 30,000 – 500,000 PLN net. The spread does not reflect agency arbitrariness but fundamental differences in project scope. Below I explain what actually drives the price.

(more…)

Flyweight pattern – object sharing, instance cache, Magento 2

  • 0
Henryk Tews
Tuesday, 26 May 2026 / Published in Wzorce projektowe

Flyweight is a structural pattern that minimises memory usage by sharing as much data as possible between similar objects. Instead of creating thousands of objects with repeated data – you create one object and references to it. In Magento 2 this pattern appears in many places: translations, store configuration, EAV objects. I show an implementation from scratch and how to recognise it in existing code.

(more…)

When does an online store need a performance audit

  • 0
Henryk Tews
Sunday, 24 May 2026 / Published in E-commerce

Most store owners find out about performance problems from customers or from a Google Analytics report showing a sales drop. By that point the store is losing money every day. There are specific signals that appear earlier – and that are worth knowing.

(more…)

Skip List – probabilistic data structure O(log n), PHP implementation

  • 0
Henryk Tews
Friday, 22 May 2026 / Published in Algorytmy

Skip List is a probabilistic data structure invented by William Pugh in 1990. It combines the simplicity of a singly linked list with the performance of a binary tree – search, insert and delete operations run in O(log n) on average, without the need for balancing like AVL or Red-Black Trees. Rarely used in PHP, but it illustrates perfectly how randomness can replace complex balancing algorithms.

(more…)

Git course #7 – debugging and rescue: bisect, reflog, reset vs revert

  • 0
Henryk Tews
Monday, 18 May 2026 / Published in Other

Every developer eventually breaks something in a repository. Good news: Git rarely loses data permanently – reflog records every HEAD change. Bisect cuts hours of regression hunting to minutes. Reset has three modes and mixing them up causes pain. Revert is the safe alternative on public branches. This post is the rescue map.

(more…)

Git course #6 – hooks and automation: pre-commit, PHPStan, commit-msg, DDEV

  • 0
Henryk Tews
Saturday, 16 May 2026 / Published in Other

Git hooks are scripts that run automatically on Git operations. A pre-commit hook run before every commit eliminates a class of errors before they enter history. Commit-msg enforces message conventions. Pre-push protects the remote branch from broken code. I show how to configure this in a Magento 2 project with DDEV.

(more…)

  • 5
  • 6
  • 7
  • 8
  • 9

© 2026 Created by

TOP
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 Always active
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.
  • Manage options
  • Manage services
  • Manage {vendor_count} vendors
  • Read more about these purposes
Zobacz preferencje
  • {title}
  • {title}
  • {title}