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.
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ę.
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.
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.
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.
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.
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.
Strategy to jeden z tych wzorców, które po pierwszym kontakcie wydają się zbędną komplikacją. Po co opakowywać jeden algorytm w osobną klasę? Sens widać dopiero przy drugim, trzecim algorytmie – gdy zamiast rosnącego if-elsa masz czysty, wymienialny kod. Pokazuję jak to działa w PHP i gdzie Magento 2 stosuje ten wzorzec bez Twojej wiedzy.
Jednym z najczęstszych pytań przy pracy z Magento 2 jest: czy nadpisać klasę przez preference, czy użyć plugin? Odpowiedź jest prawie zawsze ta sama – używaj pluginu. Ale „prawie” robi tu dużą robotę. Wyjaśniam różnice i pokazuję, kiedy preference ma sens.
Każdy zaczyna od var_dump() i die(). Ale po kilku latach pracy z PHP i Magento 2, te metody zaczynają boleć – szczególnie gdy debugujesz złożony proces zamówienia z dziesiątkami pluginów. W tym wpisie pokazuję, jak ustawić Xdebug i dlaczego warto to zrobić raz, a dobrze.
