PHP / Magento Dev Blog

  • Publikacje
  • O autorze
  • Kontakt

REST API – zasoby vs akcje, kody HTTP, struktura odpowiedzi, wersjonowanie

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

Napisanie endpointu który zwraca JSON to prosta sprawa. Zaprojektowanie REST API które jest spójne, przewidywalne i przyjemne w użyciu – to już rzemiosło. Pokazuję zasady dobrego projektowania REST API i jak przekładają się na konkretny kod PHP, z przykładami z perspektywy developera Magento 2 który często implementuje własne API lub integruje z zewnętrznymi.

(więcej…)

PHPUnit – testy jednostkowe, mocki, data providers, testy w Magento 2

  • 0
Henryk Tews
wtorek, 12 stycznia 2021 / Opublikowano w PHP

Testy jednostkowe w projektach PHP to temat który większość developerów zna teoretycznie, ale w praktyce odkłada na „kiedy będzie czas”. A czas nigdy nie przychodzi. Pokazuję jak zacząć z PHPUnit, jak pisać testy które rzeczywiście coś sprawdzają i jak mockować zależności – na przykładach z kodu który realnie wygląda jak kod produkcyjny.

(więcej…)

Komponenty Symfony bez frameworka – Console, Validator, HttpClient

  • 0
Henryk Tews
wtorek, 08 grudnia 2020 / Opublikowano w PHP, Symfony

Symfony to nie tylko framework – to zestaw niezależnych komponentów PHP, które możesz używać osobno w dowolnym projekcie. Magento 2 samo z nich korzysta (Console, Filesystem, Serializer). Pokazuję kilka komponentów, które realnie przydają się w codziennej pracy z PHP i Magento: Console do pisania komend CLI, Validator do walidacji danych i HttpClient do komunikacji z zewnętrznymi API.

(więcej…)

PHP 8.0 – premiera i pierwsze wrażenia z nowych funkcji

  • 0
Henryk Tews
czwartek, 26 listopada 2020 / Opublikowano w PHP


PHP 8.0 wyszło oficjalnie 26 listopada 2020. Pisałem o zapowiedziach w lipcu – teraz gdy mam już finalną wersję, czas na pierwsze praktyczne wrażenia. Sprawdzam co działa tak jak obiecywano, co zaskoczyło i na co uważać przy migracji starszych projektów.

(więcej…)

Varnish – VCL, cache tagging, ESI, invalidacja, DDEV setup

  • 0
Henryk Tews
wtorek, 13 października 2020 / Opublikowano w Magento 2, Środowiska

Wbudowany Full Page Cache Magento przechowuje strony w plikach lub Redis. Działa, ale obsługuje requesty wewnątrz PHP – czyli nginx i PHP-FPM i tak muszą wstać do każdego żądania. Varnish działa przed nginxem i serwuje strony z pamięci bez dotykania PHP. Dla sklepu z ruchem to różnica między sekundą a milisekundami odpowiedzi.

(więcej…)

Vue.js dla PHP developera – Options API, Composition API, komunikacja z Magento REST

  • 0
Henryk Tews
wtorek, 08 września 2020 / Opublikowano w JavaScript

Jako PHP developer pewnie masz za sobą kontakt z jQuery i może trochę czystego JS. Vue.js to kolejny krok – reaktywny framework, który coraz częściej pojawia się w projektach e-commerce jako warstwa frontendowa przy headless Magento lub jako zamiennik starszego knockout.js. Pokazuję podstawy z perspektywy kogoś, kto na co dzień myśli w PHP.

(więcej…)

Elasticsearch w Magento 2 – indeksowanie, debugowanie zapytań, własny analyzer dla polskiego

  • 0
Henryk Tews
wtorek, 11 sierpnia 2020 / Opublikowano w Magento 2

Od Magento 2.4 Elasticsearch jest jedynym wspieranym silnikiem wyszukiwania – MySQL Search został usunięty. Dla wielu sklepów to po prostu „działa”, ale gdy klient zgłasza że „wyszukiwarka nie znajduje właściwych produktów”, zaczyna się prawdziwa praca. Pokazuję jak Magento indeksuje dane w ES, jak debugować zapytania i jak rozszerzyć indeks o własne pola.

(więcej…)

Wzorzec Repository – interfejs, implementacja, SearchCriteria, testowanie z mockiem

  • 0
Henryk Tews
wtorek, 09 czerwca 2020 / Opublikowano w Wzorce projektowe

Repository to wzorzec, który oddziela logikę biznesową od szczegółów dostępu do danych. Zamiast rozsiewać zapytania SQL lub wywołania ORM po całej aplikacji, masz jedną klasę odpowiedzialną za pobieranie i zapisywanie encji. W Magento 2 Repository jest częścią Service Contracts – to standard, nie opcja. Pokazuję jak zbudować własne Repository od zera i dlaczego warto.

(więcej…)

Akeneo PIM – po co PIM, REST API, mapowanie atrybutów, import przez cron

  • 0
Henryk Tews
wtorek, 12 maja 2020 / Opublikowano w Magento 2, PIM

Gdy sklep ma kilka tysięcy produktów z dziesiątkami atrybutów w kilku językach, zarządzanie danymi produktowymi bezpośrednio w Magento staje się prawdziwym bólem. Akeneo PIM rozwiązuje ten problem – centralizuje dane produktowe i dostarcza je do Magento (i innych kanałów) przez API. Pokazuję po co w ogóle PIM i jak wygląda integracja technicznie.

(więcej…)

Docker od zera – Dockerfile, nginx, docker-compose, Xdebug 3.x

  • 0
Henryk Tews
wtorek, 07 kwietnia 2020 / Opublikowano w Środowiska

DDEV świetnie sprawdza się na co dzień, ale co jeśli potrzebujesz niestandardowej konfiguracji, której DDEV nie obsługuje? Albo chcesz rozumieć co dzieje się pod spodem? Pokazuję jak zbudować środowisko PHP od zera z czystym Dockerem i docker-compose – nginx, PHP-FPM, MySQL i Redis bez żadnych narzędzi pośrednich.

(więcej…)

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