PHP / Magento Dev Blog

  • Publikacje
  • O autorze
  • Kontakt

Wzorzec State – maszyna stanów dla zamówienia, serializacja, porównanie ze Strategy

  • 0
Henryk Tews
wtorek, 13 czerwca 2023 / Opublikowano w Wzorce projektowe

Wzorzec State pozwala obiektowi zmieniać swoje zachowanie gdy zmienia się jego wewnętrzny stan. Z zewnątrz wygląda jakby obiekt zmienił klasę. Jeśli masz klasę z rosnącym if-else który sprawdza „w jakim stanie jestem przed każdą operacją” – to klasyczny kandydat na refaktoring do wzorca State. Implementuję maszynę stanów dla zamówienia e-commerce.

(więcej…)

PHP 8.3 preview – typed constants, json_validate(), array_find(), clone with

  • 0
Henryk Tews
wtorek, 09 maja 2023 / Opublikowano w PHP

PHP 8.3 planowane jest na listopad 2023. Nie jest to wersja z przełomowymi nowościami jak PHP 8.0 czy 8.1, ale przynosi kilka zmian które realnie poprawią codzienny kod. Typed class constants, json_validate(), nowe metody dla tablic i kilka deprecacji. Przeglądam RFC które przeszły głosowanie i oceniam co realnie trafi do projektów.

(więcej…)

Drupal 10 – Entity Types, hooks, DI, headless przez JSON:API, porównanie z WP i Magento

  • 0
Henryk Tews
wtorek, 11 kwietnia 2023 / Opublikowano w PHP

Drupal to jeden z najstarszych i nadal aktywnie rozwijanych systemów CMS w ekosystemie PHP. Wersja 8+ to kompletna przebudowa oparta na Symfony – jeśli znasz Magento 2, wiele konwencji będzie znajomych. Pokazuję jak myśleć o Drupalu z perspektywy PHP developera: architektura, system modułów, hooks i gdzie Drupal błyszczy względem WordPressa czy Magento.

(więcej…)

Laravel vs Symfony – DI, Doctrine vs Eloquent, kiedy który framework

  • 0
Henryk Tews
wtorek, 14 marca 2023 / Opublikowano w Laravel, PHP, Symfony

Pracując na co dzień z Magento 2 (opartym na komponentach Symfony) rzadko masz okazję spojrzeć szerzej na ekosystem PHP frameworków. Klient prosi o mikroserwis, API, panel administracyjny – i nagle pojawia się pytanie: Laravel czy Symfony? Pokazuję oba z perspektywy doświadczonego developera PHP który zna Magento, ale chce świadomie wybrać narzędzie do nowego projektu.

(więcej…)

Optymalizacja wydajności – OPcache, Redis, N+1 queries, Blackfire, tabela priorytetów

  • 0
Henryk Tews
wtorek, 14 lutego 2023 / Opublikowano w Magento / Adobe Commerce

Wolny sklep to utracone przychody. Każde 100ms opóźnienia to mierzalny spadek konwersji. Optymalizacja Magento 2 to nie magia – to systematyczna diagnostyka i eliminacja wąskich gardeł. Pokazuję jak zidentyfikować co spowalnia sklep, jak mierzyć poprawę i które zmiany dają największy efekt w stosunku do nakładu pracy.

(więcej…)

TypeScript dla PHP developera – typy, interface, generics, async/await

  • 0
Henryk Tews
wtorek, 10 stycznia 2023 / Opublikowano w JavaScript

Jeśli przez lata pisałeś PHP z type hintami i declare(strict_types=1), praca z czystym JavaScriptem boli. Brak typów, brak autouzupełniania, błędy które wychodzą dopiero w przeglądarce. TypeScript rozwiązuje ten problem – dodaje do JavaScriptu system typów który PHP developer natychmiast doceni. Pokazuję podstawy z perspektywy kogoś kto myśli w PHP.

(więcej…)

PHP 8.2 po premierze – readonly classes w praktyce, deprecacje, Rector, checklist migracji

  • 0
Henryk Tews
wtorek, 13 grudnia 2022 / Opublikowano w PHP

PHP 8.2 wyszło oficjalnie 8 grudnia 2022. W lipcu pisałem o zapowiedziach – teraz, gdy mam finalną wersję w rękach, czas na uczciwe podsumowanie. Co faktycznie weszło do specyfikacji, co zostało odłożone i jakie są pierwsze praktyczne wrażenia z migracji projektu PHP na nową wersję.

(więcej…)

Wzorzec Template Method – szkielet algorytmu, hooks, abstract vs hook, porównanie ze Strategy

  • 0
Henryk Tews
wtorek, 08 listopada 2022 / Opublikowano w Wzorce projektowe

Template Method to jeden z prostszych wzorców behawioralnych GoF, ale bardzo skuteczny przy eliminowaniu duplikacji kodu. Definiuje szkielet algorytmu w klasie bazowej i pozwala podklasom nadpisać wybrane kroki bez zmiany ogólnej struktury. Jeśli masz kilka klas które robią „to samo, ale trochę inaczej” – Template Method jest kandydatem do refaktoringu.

(więcej…)

MSI – Source, Stock, SSA, własny algorytm, migracja ze starego API

  • 0
Henryk Tews
wtorek, 11 października 2022 / Opublikowano w Magento / Adobe Commerce

Multi Source Inventory (MSI) to moduł wprowadzony w Magento 2.3, który całkowicie zmienia sposób zarządzania stanami magazynowymi. Zamiast jednego globalnego stanu dla każdego SKU, masz wiele źródeł (magazynów fizycznych, sklepów, dostawców) i algorytmy wyboru z którego źródła realizować zamówienie. Jeśli rozwijasz moduły Magento i jeszcze nie poznałeś MSI – ten wpis jest dla Ciebie.

(więcej…)

Quicksort – warianty, Introsort, benchmark vs wbudowany sort()

  • 0
Henryk Tews
wtorek, 13 września 2022 / Opublikowano w Algorytmy

W listopadzie 2018 pisałem o podstawowych algorytmach sortowania. Czas na Quicksort – jeden z najważniejszych algorytmów w historii informatyki, średnio O(n log n) i jeden z najszybszych w praktyce. Implementuję kilka wariantów w PHP, pokazuję gdzie Quicksort bije inne algorytmy i dlaczego wbudowany sort() PHP jest szybszy niż własna implementacja.

(więcej…)

  • 12
  • 13
  • 14
  • 15
  • 16
  • 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}