PHP / Magento Dev Blog

  • Home

Elasticsearch in Magento 2 – indexing, debugging queries, custom analyzer for Polish

  • 0
Henryk Tews
Tuesday, 11 August 2020 / Published in Magento / Adobe Commerce

Since Magento 2.4 Elasticsearch is the only supported search engine – MySQL Search was removed. For many shops it “just works”, but when a client reports that “the search doesn’t find the right products”, the real work begins. I show how Magento indexes data in ES, how to debug queries, and how to extend the index with custom fields.

(more…)

PHP 8.0 preview – union types, named arguments, match, constructor promotion, JIT

  • 0
Henryk Tews
Tuesday, 14 July 2020 / Published in PHP

PHP 8.0 ma wyjść w listopadzie 2020 i będzie największą zmianą w języku od czasu PHP 7.0. JIT compiler, union types, named arguments, match expression, constructor property promotion – to nie są drobne poprawki. Przeglądam najważniejsze nowości na przykładach i oceniam co realne znaczenie dla codziennego kodu z Magento 2.

(more…)

Repository pattern – interface, implementation, SearchCriteria, testing with mock

  • 0
Henryk Tews
Tuesday, 09 June 2020 / Published in Wzorce projektowe

Repository is a pattern that separates business logic from the details of data access. Instead of scattering SQL queries or ORM calls throughout the application, you have one class responsible for fetching and saving entities. In Magento 2 Repository is part of Service Contracts – a standard, not an option. I show how to build your own Repository from scratch and why it is worth doing.

(more…)

Akeneo PIM – why a PIM, REST API, attribute mapping, cron import

  • 0
Henryk Tews
Tuesday, 12 May 2020 / Published in Magento / Adobe Commerce, PIM

When a shop has several thousand products with dozens of attributes in several languages, managing product data directly in Magento becomes a real pain. Akeneo PIM solves this – it centralises product data and delivers it to Magento (and other channels) through an API. I show why you would want a PIM and what the technical integration looks like.

(more…)

Docker from scratch – Dockerfile, nginx, docker-compose, Xdebug 3.x

  • 0
Henryk Tews
Tuesday, 07 April 2020 / Published in Środowiska

DDEV works great day to day, but what if you need a custom configuration DDEV does not support? Or you want to understand what is happening under the hood? I show how to build a PHP environment from scratch with pure Docker and docker-compose – nginx, PHP-FPM, MySQL and Redis with no intermediate tools.

(more…)

Doubly linked list – implementation from scratch, SplDoublyLinkedList, comparison table

  • 0
Henryk Tews
Tuesday, 10 March 2020 / Published in Algorytmy

PHP array is versatile enough that we rarely need other data structures. But a doubly linked list has properties an array does not – inserting and removing elements from the middle in O(1), without shifting the remaining elements. I implement one from scratch in PHP and show when it is worth reaching for.

(more…)

GraphQL in Magento 2 – custom resolver, schema, authorization, testing in DDEV

  • 0
Henryk Tews
Tuesday, 11 February 2020 / Published in Magento / Adobe Commerce

Magento 2.3 introduced GraphQL as an alternative to the REST API. Where REST requires separate endpoints for each resource, GraphQL lets the client decide what data it needs in a single query. I show how to write a custom resolver and expose data through GraphQL in a Magento 2 module.

(more…)

PHP 7.4 in practice – typed properties pitfalls, hydration, PHP 8.0 preview

  • 0
Henryk Tews
Monday, 13 January 2020 / Published in PHP

PHP 7.4 was released in November 2019. After migrating several Magento 2 modules to the new version I have a clear picture. Typed properties genuinely affect the way you write classes – but they also have pitfalls worth knowing. I show what works great, what surprises you, and what migration looks like in practice.

(more…)

Factory Method – Simple Factory, GoF, auto-generated factories in Magento 2

  • 0
Henryk Tews
Tuesday, 10 December 2019 / Published in Wzorce projektowe

The new operator in production code is a warning sign. A class that directly instantiates other classes is tightly coupled to them – hard to test, hard to extend. Factory Method delegates the responsibility for object creation to dedicated classes. In Magento 2 factories are everywhere – and generated automatically.

(more…)

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

  • 0
Henryk Tews
Tuesday, 12 November 2019 / Published in Magento / Adobe Commerce

Operations like sending emails, syncing with an ERP, or recalculating indexes do not have to block an HTTP request. Magento 2 has a built-in Message Queue Framework that lets you push such tasks to an asynchronous queue. I show how it works with RabbitMQ and how to write your own publisher and consumer.

(more…)

  • 16
  • 17
  • 18
  • 19
  • 20

© 2026 Created by

TOP
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 Always active
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.
  • Manage options
  • Manage services
  • Manage {vendor_count} vendors
  • Read more about these purposes
Zobacz preferencje
  • {title}
  • {title}
  • {title}