PHP / Magento Dev Blog

  • Publikacje
  • O autorze
  • Kontakt

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

Wzorzec Observer w PHP i system zdarzeń Magento 2

  • 0
Henryk Tews
wtorek, 19 marca 2019 / Opublikowano w Wzorce projektowe

Observer to jeden z najczęściej stosowanych wzorców w programowaniu obiektowym, a w ekosystemie Magento 2 jest wbudowany w sam rdzeń platformy. Jeśli kiedykolwiek pisałeś obserwatora zdarzenia w Magento, używałeś tego wzorca – często nie zdając sobie z tego sprawy.

(więcej…)

Service Contracts – Data Interfaces i Repository Pattern

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


Bezpośrednie użycie modeli Magento 2 w swoim kodzie to kusząca droga na skróty. Model jest pod ręką, ma metodę której szukasz, działa. Problem pojawia się przy aktualizacji Magento, gdy wewnętrzna implementacja modelu się zmienia. Service Contracts to odpowiedź Magento na ten problem – stabilne, publiczne API oddzielone od implementacji.

(więcej…)

PHP 7.3 – JSON_THROW_ON_ERROR, elastyczny Heredoc, array_key_first/last

  • 0
Henryk Tews
wtorek, 08 stycznia 2019 / Opublikowano w PHP


PHP 7.3 wyszło oficjalnie w grudniu 2018. Nie jest to rewolucja, ale kilka zmian realnie wpływa na codzienny kod – szczególnie praca z JSON-em, elastyczniejsza składnia Heredoc i kilka nowych funkcji tablicowych. Przeglądam to, co faktycznie przyda się w projekcie.

(więcej…)

DDEV – lokalne Magento 2 w 10 minut, porównanie z XAMPP

  • 0
Henryk Tews
wtorek, 11 grudnia 2018 / Opublikowano w Środowiska

Przez lata stawianie lokalnego środowiska Magento 2 to był rytuał bólu: XAMPP z ręczną konfiguracją vhostów, walka z wersjami PHP, niemożliwe do odtworzenia „u mnie działa”. DDEV rozwiązuje ten problem elegancko – Docker pod spodem, prosta konfiguracja YAML na wierzchu. Pokazuję jak to wygląda w praktyce.

(więcej…)

Sortowanie w PHP – bubble sort, merge sort, usort() i operator <=>

  • 0
Henryk Tews
wtorek, 13 listopada 2018 / Opublikowano w Algorytmy

Sortowanie to temat, który większość z nas „odhacza” na studiach i wraca do niego tylko przy rozmowach rekrutacyjnych. Tymczasem świadomość tego, jak działają algorytmy sortowania, pomaga podejmować lepsze decyzje nawet w codziennej pracy z PHP i bazami danych. Przechodzę przez kilka klasycznych podejść, piszę je w PHP i pokazuję gdzie ma to realne zastosowanie.

(więcej…)

  • 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}