PHP / Magento Dev Blog

  • Publikacje
  • O autorze
  • Kontakt

Trie – drzewo prefiksowe, autouzupełnianie, filtr spamu, benchmark vs array

  • 0
Henryk Tews
wtorek, 16 kwietnia 2024 / Opublikowano w Algorytmy

Trie (drzewo prefiksowe) to struktura danych zoptymalizowana pod wyszukiwanie słów i prefiksów. Zamiast porównywać każde słowo ze słownikiem, Trie przechodzi po literach – każdy węzeł to jedna litera, każda ścieżka od korzenia to słowo. Autouzupełnianie w wyszukiwarce, walidacja SKU, wykrywanie spamu – Trie pojawia się w e-commerce częściej niż myślisz. Implementuję od zera w PHP z praktycznymi przykładami.

(więcej…)

AI w pracy PHP developera – Copilot, Claude, Ollama, gdzie pomaga a gdzie zawodzi

  • 0
Henryk Tews
wtorek, 02 kwietnia 2024 / Opublikowano w PHP

Od roku intensywnie używam narzędzi AI w codziennej pracy z PHP i Magento 2. GitHub Copilot, Claude, ChatGPT, lokalne modele przez Ollama – przetestowałem sporo. Czas na uczciwe podsumowanie: gdzie AI realnie oszczędza czas, gdzie zawodzi i jak nie wpaść w pułapkę ślepego ufania generowanemu kodowi.

(więcej…)

REST API security – tokeny, ACL, rate limiting nginx, monitoring podejrzanych requestów

  • 0
Henryk Tews
wtorek, 19 marca 2024 / Opublikowano w Magento / Adobe Commerce

Magento 2 REST API to potężne narzędzie – i potencjalny wektor ataku jeśli jest źle skonfigurowane. Domyślnie wiele endpointów jest dostępnych publicznie lub wymaga jedynie tokenu klienta który można wyprowadzić z frontendowej aplikacji. Pokazuję jak prawidłowo zabezpieczyć API: tokeny OAuth, rate limiting, ACL i monitoring podejrzanych requestów.

(więcej…)

ReactPHP – event loop, równoległe HTTP requests, serwer HTTP, Fibers bridge

  • 0
Henryk Tews
wtorek, 05 marca 2024 / Opublikowano w PHP

PHP jest synchroniczny z natury – jeden request, jeden wątek, czekaj na bazę, czekaj na API, czekaj na plik. Ale od PHP 8.1 mamy Fibers, a ReactPHP istnieje od lat i daje pełną asynchroniczność opartą na event loop. Pokazuję kiedy to ma realne zastosowanie, jak działa event loop w PHP i jak napisać prosty serwer HTTP oraz klienta który odpytuje kilka API równolegle.

(więcej…)

Next.js dla PHP developera – SSR, Server Components, GraphQL z Magento, porównanie z MVC

  • 0
Henryk Tews
wtorek, 27 lutego 2024 / Opublikowano w JavaScript

Next.js to React framework który rozwiązuje problem SEO i wydajności aplikacji SPA – renderuje strony po stronie serwera (SSR) lub generuje statycznie (SSG), tak jak klasyczne PHP aplikacje. Dla PHP developera Next.js ma znajomą strukturę: routing oparty na plikach, server-side rendering, API routes jako własny backend. Pokazuję podstawy z perspektywy kogoś kto myśli w PHP i Magento.

(więcej…)

Wzorzec Visitor – double dispatch, eksport CSV/PDF, walidacja bez modyfikacji klas

  • 0
Henryk Tews
wtorek, 13 lutego 2024 / Opublikowano w Wzorce projektowe

Visitor to jeden z trudniejszych wzorców GoF do zrozumienia, ale rozwiązuje bardzo konkretny problem: chcesz dodać nową operację do grupy powiązanych klas bez modyfikowania tych klas. Zamiast dodawać metodę do każdej klasy, tworzysz Visitora który „odwiedza” każdą z nich. Szczególnie przydatny przy AST (drzewach składniowych), formatowaniu danych i eksporcie do różnych formatów.

(więcej…)

Hyvä Theme – architektura, Alpine.js, Tailwind, szablony PHTML, eventy

  • 0
Henryk Tews
poniedziałek, 22 stycznia 2024 / Opublikowano w Magento / Adobe Commerce

Luma – domyślny motyw Magento 2 – ma poważny problem z wydajnością. Dziesiątki plików JS, jQuery, RequireJS, knockout.js i plik CSS liczący setki KB. Hyvä (wymawiane „hiuva”, po fińsku „dobry”) to alternatywny motyw który wyrzuca ten stack i zastępuje go Alpine.js i Tailwind CSS. Wyniki PageSpeed skaczą z 30-40 do 90+. Pokazuję architekturę i jak zacząć.

(więcej…)

PHP 8.4 preview – property hooks, asymmetric visibility, chaining new

  • 0
Henryk Tews
wtorek, 09 stycznia 2024 / Opublikowano w PHP

PHP 8.4 planowane jest na listopad 2024 i ma przynieść dwie zmiany które zmienią sposób pisania klas PHP – property hooks i asymmetric visibility. Property hooks to coś czego brakowało od lat: możliwość definiowania logiki get/set bezpośrednio przy właściwości, bez osobnych metod. Asymmetric visibility pozwala na readonly-like zachowanie z możliwością wewnętrznej modyfikacji. Przeglądam RFC które przeszły głosowanie.

(więcej…)

Checkout customization – własne pola, mixin JS, krok do procesu, zapis do Order

  • 0
Henryk Tews
wtorek, 12 grudnia 2023 / Opublikowano w Magento / Adobe Commerce

Checkout w Magento 2 to jeden z najtrudniejszych obszarów do customizacji – głęboko zagnieżdżony JSON konfiguracji knockout.js, wielowarstwowe mixiny JavaScript i kilkanaście kroków przetwarzania po stronie PHP. Pokazuję jak dodać własne pole do formularza checkout, własną walidację i jak zmodyfikować kroki procesu bez rozbijania istniejącej funkcjonalności.

(więcej…)

PHP 8.3 po premierze – typed constants, json_validate(), clone with w praktyce

  • 0
Henryk Tews
wtorek, 28 listopada 2023 / Opublikowano w PHP

PHP 8.3 wyszło oficjalnie 23 listopada 2023. W maju pisałem o zapowiedziach – teraz mam kilka dni na sprawdzenie finalnej wersji. Nie ma tu rewolucji jak w PHP 8.0 czy enumów z 8.1, ale kilka zmian wchodzi do codziennego kodu od razu. Typed constants i json_validate() to te które stosuję natychmiast.

(więcej…)

  • 8
  • 9
  • 10
  • 11
  • 12
  • 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}