PHP / Magento Dev Blog

  • Publikacje
  • O autorze
  • Kontakt

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…)

Wzorzec Decorator w PHP – kompozycja zamiast dziedziczenia, przykład z cache repository

  • 0
Henryk Tews
wtorek, 13 sierpnia 2019 / Opublikowano w Wzorce projektowe

Dziedziczenie to najprostszy sposób na rozszerzenie klasy – ale nie zawsze najlepszy. Gdy chcesz dodać kilka niezależnych funkcji do obiektu, hierarchia klas szybko staje się nieczytelna. Decorator pozwala „owijać” obiekty w kolejne warstwy funkcjonalności bez modyfikacji oryginału i bez głębokiego dziedziczenia.

(więcej…)

DI w Magento 2 – kontener, Virtual Types, Factory, shared/non-shared

  • 0
Henryk Tews
wtorek, 09 lipca 2019 / Opublikowano w Magento / Adobe Commerce

Dependency Injection w Magento 2 to temat, który na początku wygląda jak magia. Wpisujesz interfejs w konstruktorze, a Magento samo dostarcza właściwą implementację. Skąd wie co wstrzyknąć? Jak działa kompilacja DI? Co to są virtual types i po co są? Rozkładam to na czynniki pierwsze.

(więcej…)

Typowanie w PHP 7.x, strict_types, PHPStan, przygotowanie na PHP 7.4

  • 0
Henryk Tews
wtorek, 11 czerwca 2019 / Opublikowano w PHP

System typów w PHP rozwijał się stopniowo od wersji 5.x. PHP 7.x znacznie go wzmocnił – mamy typowanie parametrów, typowanie zwracanych wartości, nullable types i union types na horyzoncie. PHP 7.4, które pojawi się pod koniec 2019, doda typed properties. To dobry moment, żeby podsumować stan typowania w PHP i pokazać dobre praktyki, które warto stosować już dziś.

(więcej…)

XAMPP vs DDEV vs Warden – pełne porównanie w tabeli

  • 0
Henryk Tews
wtorek, 14 maja 2019 / Opublikowano w Środowiska

Każdy PHP developer prędzej czy później staje przed pytaniem: jak postawić lokalne środowisko? Przez lata XAMPP był domyślną odpowiedzią. Dziś mamy znacznie więcej opcji – i znacznie więcej powodów, żeby zrezygnować z XAMPP na rzecz narzędzi opartych na Dockerze. Porównuję trzy popularne podejścia z perspektywy pracy z PHP i Magento 2.

(więcej…)

Wyszukiwanie binarne – O(log n) vs O(n) z tabelą porównawczą

  • 0
Henryk Tews
wtorek, 09 kwietnia 2019 / Opublikowano w Algorytmy

Wyszukiwanie liniowe działa zawsze. Przelatujesz przez każdy element po kolei i w końcu znajdziesz to, czego szukasz. Problem pojawia się przy 100 000 elementach, gdy robisz to w pętli. Wyszukiwanie binarne rozwiązuje ten problem elegancko – ale tylko jeśli dane są posortowane. Pokazuję implementację w PHP i sytuacje, gdzie naprawdę robi różnicę.

(więcej…)

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