PHP / Magento Dev Blog

  • Publikacje
  • O autorze
  • Kontakt

PHP 8.1 w praktyce – enumy po miesiącach, serializacja do bazy, Money value object

  • 0
Henryk Tews
wtorek, 08 marca 2022 / Opublikowano w PHP

PHP 8.1 wyszło w grudniu 2021. Mam za sobą kilka miesięcy używania enumeracji, readonly properties i intersection types w projektach produkcyjnych. Czas na uczciwe podsumowanie: co weszło do kodu naturalnie, co zaskakuje i gdzie są granice tych nowości w kontekście Magento 2 i starszych baz kodu.

(więcej…)

Chain of Responsibility – łańcuch walidatorów, konfiguracja przez di.xml z sortOrder

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

Chain of Responsibility pozwala przekazywać żądanie przez łańcuch handlerów, gdzie każdy może je obsłużyć lub przekazać dalej. Eliminuje rozbudowane if-else i switch decydujące „kto powinien to obsłużyć”. W Magento 2 ten wzorzec pojawia się w pipeline przetwarzania płatności, middleware HTTP i systemie reguł cenowych. Pokazuję implementację od zera i praktyczne zastosowania.

(więcej…)

Redis – trzy zastosowania, konfiguracja env.php, osobne instancje, monitoring

  • 0
Henryk Tews
wtorek, 11 stycznia 2022 / Opublikowano w Magento / Adobe Commerce

Redis jest de facto standardem w produkcyjnych wdrożeniach Magento 2. Zastępuje cache plikowy, obsługuje sesje i może działać jako backend Full Page Cache. Każdy z tych przypadków wymaga osobnej instancji lub bazy Redis z inną konfiguracją. Pokazuję jak to prawidłowo skonfigurować, dlaczego oddzielne instancje mają znaczenie i jak monitorować Redis w środowisku Magento.

(więcej…)

Programowanie dynamiczne – memoizacja, knapsack, LCS, dekorator memoize

  • 0
Henryk Tews
wtorek, 07 grudnia 2021 / Opublikowano w Algorytmy

Programowanie dynamiczne (DP) to technika rozwiązywania problemów przez rozbicie ich na podproblemy i zapamiętywanie wyników aby nie liczyć ich wielokrotnie. Brzmi abstrakcyjnie, ale w praktyce stosujesz DP kiedy piszesz cache dla kosztownej operacji albo szukasz optymalnego zestawu produktów do oferty. Pokazuję dwa klasyczne problemy z implementacją w PHP.

(więcej…)

PHP 8.1 preview – enumy, readonly properties, intersection types, fibers

  • 0
Henryk Tews
wtorek, 09 listopada 2021 / Opublikowano w PHP

PHP 8.1 wychodzi w grudniu 2021 i przynosi kilka zmian które od razu wchodzą do codziennego kodu. Enumy to chyba największa nowość od lat – nareszcie natywne typy wyliczeniowe bez obejść przez stałe i klasy. Do tego readonly properties, intersection types i never return type. Przeglądam co jest gotowe do użycia od razu, a co wymaga ostrożności przy integracji z Magento 2.

(więcej…)

PimCore – CMS + PIM + DAM, klasy obiektów, Data Hub GraphQL, integracja z Magento

  • 0
Henryk Tews
wtorek, 12 października 2021 / Opublikowano w PHP, PIM

PimCore to platforma open source oparta na Symfony, która łączy w jednym narzędziu CMS, DAM (zarządzanie zasobami cyfrowymi) i PIM (zarządzanie informacją produktową). W przeciwieństwie do Akeneo, które jest dedykowanym PIMem, PimCore jest bardziej universalny – możesz zbudować w nim zarówno stronę korporacyjną, jak i katalog produktowy zasilający sklep Magento. Pokazuję architekturę i pierwsze kroki z perspektywy PHP developera.

(więcej…)

GitHub Actions – pipeline dla PHP, matrix testów, deploy na staging przez SSH

  • 0
Henryk Tews
wtorek, 14 września 2021 / Opublikowano w Środowiska

Każdy deploy robiony ręcznie przez SSH to potencjalne źródło błędu. GitHub Actions pozwala zautomatyzować testy, analizę statyczną i wdrożenie – bezpłatnie dla publicznych repozytoriów, z hojnym limitem dla prywatnych. Pokazuję jak zbudować pipeline CI/CD dla projektu PHP i modułu Magento 2 od zera.

(więcej…)

Wzorzec Proxy – lazy loading, kontrola dostępu, caching, Proxy w Magento 2

  • 0
Henryk Tews
wtorek, 10 sierpnia 2021 / Opublikowano w Magento / Adobe Commerce, Wzorce projektowe

Proxy to wzorzec który stawia pośrednika między klientem a prawdziwym obiektem. Pośrednik implementuje ten sam interfejs co oryginał, więc klient nie widzi różnicy – a Proxy może robić coś dodatkowego: opóźniać inicjalizację, kontrolować dostęp, logować wywołania lub keszować wyniki. W Magento 2 Proxy jest generowane automatycznie dla klas z ciężkimi konstruktorami.

(więcej…)

UI Components – siatka danych, DataProvider, własne kolumny, konfiguracja XML

  • 0
Henryk Tews
wtorek, 13 lipca 2021 / Opublikowano w Magento / Adobe Commerce

UI Components to jeden z bardziej zagadkowych elementów Magento 2. Siatki danych w panelu admina, formularze edycji, filtry – wszystko to jest zbudowane na UI Components. Dokumentacja Magento jest tu wyjątkowo skąpa, a debugowanie bywa frustrujące. Pokazuję jak to działa od środka i jak napisać własną siatkę danych z filtrowaniem.

(więcej…)

React.js – JSX, useState, useEffect, custom hooks, porównanie z Vue

  • 0
Henryk Tews
wtorek, 08 czerwca 2021 / Opublikowano w JavaScript

W maju pisałem o Vue.js. React to drugi popularny wybór przy projektach headless Magento i PWA. Różni się od Vue filozoficznie – mniej „magii”, więcej jawnego JavaScriptu, JSX zamiast szablonów HTML. Dla PHP developera React wymaga przestawienia myślenia, ale gdy już kliknie – jest bardzo przewidywalny. Pokazuję podstawy z perspektywy kogoś kto na co dzień pisze PHP.

(więcej…)

  • 14
  • 15
  • 16
  • 17
  • 18
  • 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}