PHP 8.1 wyszło w grudniu 2021. Mam za sobą kilka miesięcy używania enumeracji, readonly properties i intersection types w projektach produkcyjnych. Czas na uczciwe podsumowanie: co weszło do kodu naturalnie, co zaskakuje i gdzie są granice tych nowości w kontekście Magento 2 i starszych baz kodu.
PHP 8.1 wychodzi w grudniu 2021 i przynosi kilka zmian które od razu wchodzą do codziennego kodu. Enumy to chyba największa nowość od lat – nareszcie natywne typy wyliczeniowe bez obejść przez stałe i klasy. Do tego readonly properties, intersection types i never return type. Przeglądam co jest gotowe do użycia od razu, a co wymaga ostrożności przy integracji z Magento 2.
PimCore to platforma open source oparta na Symfony, która łączy w jednym narzędziu CMS, DAM (zarządzanie zasobami cyfrowymi) i PIM (zarządzanie informacją produktową). W przeciwieństwie do Akeneo, które jest dedykowanym PIMem, PimCore jest bardziej universalny – możesz zbudować w nim zarówno stronę korporacyjną, jak i katalog produktowy zasilający sklep Magento. Pokazuję architekturę i pierwsze kroki z perspektywy PHP developera.
Napisanie endpointu który zwraca JSON to prosta sprawa. Zaprojektowanie REST API które jest spójne, przewidywalne i przyjemne w użyciu – to już rzemiosło. Pokazuję zasady dobrego projektowania REST API i jak przekładają się na konkretny kod PHP, z przykładami z perspektywy developera Magento 2 który często implementuje własne API lub integruje z zewnętrznymi.
Testy jednostkowe w projektach PHP to temat który większość developerów zna teoretycznie, ale w praktyce odkłada na „kiedy będzie czas”. A czas nigdy nie przychodzi. Pokazuję jak zacząć z PHPUnit, jak pisać testy które rzeczywiście coś sprawdzają i jak mockować zależności – na przykładach z kodu który realnie wygląda jak kod produkcyjny.
Symfony to nie tylko framework – to zestaw niezależnych komponentów PHP, które możesz używać osobno w dowolnym projekcie. Magento 2 samo z nich korzysta (Console, Filesystem, Serializer). Pokazuję kilka komponentów, które realnie przydają się w codziennej pracy z PHP i Magento: Console do pisania komend CLI, Validator do walidacji danych i HttpClient do komunikacji z zewnętrznymi API.
PHP 8.0 wyszło oficjalnie 26 listopada 2020. Pisałem o zapowiedziach w lipcu – teraz gdy mam już finalną wersję, czas na pierwsze praktyczne wrażenia. Sprawdzam co działa tak jak obiecywano, co zaskoczyło i na co uważać przy migracji starszych projektów.
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.
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.
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ś.
