PHP / Magento Dev Blog

  • Publikacje
  • O autorze
  • Kontakt

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 / Adobe Commerce, 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…)

Lista dwukierunkowa – implementacja od zera, SplDoublyLinkedList, tabela porównawcza

  • 0
Henryk Tews
wtorek, 10 marca 2020 / Opublikowano w Algorytmy

PHP array jest na tyle wszechstronna, że rzadko potrzebujemy innych struktur danych. Ale lista dwukierunkowa (doubly linked list) ma właściwości, których tablica nie oferuje – wstawianie i usuwanie elementów ze środka w O(1), bez przesuwania pozostałych elementów. Implementuję ją od zera w PHP i pokazuję kiedy warto po nią sięgnąć.

(więcej…)

GraphQL – własny resolver, schemat, autoryzacja, testowanie w DDEV

  • 0
Henryk Tews
wtorek, 11 lutego 2020 / Opublikowano w Magento / Adobe Commerce

Magento 2.3 wprowadziło obsługę GraphQL jako alternatywę dla REST API. O ile REST wymaga osobnych endpointów dla każdego zasobu, GraphQL pozwala klientowi samemu określić jakich danych potrzebuje w jednym zapytaniu. Pokazuję jak napisać własny resolver i udostępnić dane przez GraphQL w module Magento 2.

(więcej…)

PHP 7.4 w praktyce – pułapki typed properties, hydratacja, zapowiedź PHP 8.0

  • 0
Henryk Tews
poniedziałek, 13 stycznia 2020 / Opublikowano w PHP

PHP 7.4 wyszło w listopadzie 2019. Miałem kilka tygodni na przejście kilku modułów Magento 2 na nową wersję i wyrobienie sobie zdania. Typed properties to zmiana, która realnie wpływa na sposób pisania klas – ale ma też kilka pułapek, na które warto uważać. Pokazuję co działa świetnie, co zaskakuje i jak wygląda migracja istniejącego kodu.

(więcej…)

Wzorzec Factory Method – Simple Factory, GoF, auto-generowane fabryki Magento 2

  • 0
Henryk Tews
wtorek, 10 grudnia 2019 / Opublikowano w Wzorce projektowe

Operator new w kodzie produkcyjnym to sygnał ostrzegawczy. Klasa tworząca instancje innych klas bezpośrednio jest z nimi silnie sprzężona – trudno ją testować, trudno rozszerzać. Factory Method to wzorzec, który deleguje odpowiedzialność za tworzenie obiektów do dedykowanych klas. W Magento 2 fabryki są wszechobecne – i generowane automatycznie.

(więcej…)

Message Queue Framework z RabbitMQ – publisher, consumer, DDEV config

  • 0
Henryk Tews
wtorek, 12 listopada 2019 / Opublikowano w Magento / Adobe Commerce

Operacje takie jak wysyłka emaili, synchronizacja z ERP czy przeliczanie indeksów nie muszą blokować requestu HTTP. Magento 2 ma wbudowany Message Queue Framework, który pozwala przerzucać takie zadania do asynchronicznego kolejkowania. Pokazuję jak to działa z RabbitMQ i jak napisać własnego producenta i konsumenta.

(więcej…)

Hash table w PHP – in_array vs isset, SplQueue, SplFixedArray

  • 0
Henryk Tews
wtorek, 08 października 2019 / Opublikowano w Algorytmy

Tablica w PHP to jeden z najczęściej używanych typów danych, ale mało kto zastanawia się jak działa pod spodem. PHP array to w rzeczywistości hash table – struktura danych, która pozwala na dostęp do elementów w czasie O(1). Pokazuję jak to działa, jakie ma konsekwencje praktyczne i gdzie tablice PHP zaskakują swoją wydajnością.

(więcej…)

PHP 7.4 preview – typed properties, arrow functions, spread w tablicach, preloading

  • 0
Henryk Tews
wtorek, 10 września 2019 / Opublikowano w PHP

PHP 7.4 wychodzi w listopadzie 2019 i przynosi kilka zmian, które realnie wpłyną na codzienny kod. Typed properties to największa nowość – w końcu możemy deklarować typy bezpośrednio przy właściwościach klasy. Do tego arrow functions, operator nullsafe w preprodukcji i kilka pomniejszych usprawnień. Przeglądam zmiany na przykładach.

(więcej…)

  • 16
  • 17
  • 18
  • 19
  • 20
  • 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}