Ostatni dzień 2024 roku to dobry moment na podsumowanie zmian w Magento 2.4.8 które pojawiło się w tym roku. Największa zmiana techniczna to oficjalne wsparcie PHP 8.4 i przejście z Elasticsearch na OpenSearch jako domyślny silnik wyszukiwania. Przeglądam co to oznacza dla istniejących projektów i jak wygląda migracja.

(więcej…)

LRU (Least Recently Used) Cache to jeden z klasycznych problemów algorytmicznych z rozmów rekrutacyjnych, ale też realna struktura danych używana w systemach produkcyjnych. Redis domyślnie używa wariantu LRU do eksmisji kluczy. PHP OPcache stosuje LRU. Pokazuję jak zaimplementować LRU Cache w O(1) dla get i put, używając hashmapy i listy dwukierunkowej – i gdzie to ma zastosowanie w e-commerce.

(więcej…)

Redis Streams to struktura danych wprowadzona w Redis 5.0 która łączy cechy kolejki wiadomości i niezmiennego logu zdarzeń. W porównaniu do klasycznych list Redis (LPUSH/RPOP) daje persystencję, grupy konsumentów, potwierdzenia odbioru i możliwość odczytu historii. Dla projektów gdzie RabbitMQ to za dużo infrastruktury a Redis już masz – Streams mogą zastąpić brokera wiadomości.

(więcej…)

PHP 8.4 wyszło oficjalnie 21 listopada 2024. Pisałem o RC w lipcu i wrześniu – teraz mam kilka dni z finalną wersją i pierwsze projekty które uruchamiam na 8.4. Property hooks, asymmetric visibility, Lazy Objects, BcMath\Number – wszystko wylądowało dokładnie jak RFC obiecywało. Czas na uczciwy bilans: co od razu wchodzi do kodu, co zaskakuje i jak gładka jest migracja z 8.3.

(więcej…)

GÓRA