PHP 8.3 – readonly classes, json_validate(), typed constants, #[Override]
PHP 8.3 doprecyzował i rozszerzył kilka funkcji które były już w 8.1 i 8.2. Readonly properties dostały nowe możliwości, json_validate() zastąpiło powszechny hack z json_decode + sprawdzeniem błędu, a nowe funkcje tablic i typowanie klas wbudowanych zamknęły kilka długo otwartych luk. Pokażę zmiany które mają realny wpływ na codzienne pisanie kodu w Magento 2.
- Published in PHP
Magento 2 – invisible CSS z-index bug caused 40% conversion drop
The shop was running normally, but conversion suddenly dropped 40% in a single day. Google Analytics showed traffic at normal levels. The problem was invisible to the naked eye – only at a specific screen size did checkout buttons overlap and become unclickable. Diagnosis time: 3 hours, fix time: 30 minutes.
- Published in Magento / Adobe Commerce
Magento 2 – expired payment gateway API key detected too late
The shop stopped accepting card payments on Saturday night. Monitoring did not detect the problem because the site was working – only checkout was broken. Customers received a generic “Payment cannot be processed” error. Several hours of sales were lost before a report arrived Monday morning. Fix time: 45 minutes after the report.
- Published in Magento / Adobe Commerce
GraphQL custom resolver in Magento 2 – schema, authorisation, tests
GraphQL in Magento 2 is not just a read API – you can add your own types, queries and mutations. A custom resolver is a PHP class responsible for fetching data for a given field or query. I show a complete implementation: GraphQL schema, resolver with authorisation, error handling and integration tests. Using a query fetching customer order history with filters as the example.
- Published in Magento / Adobe Commerce
