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

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

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

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

GÓRA