Page 23 - Monthly Archives: October 2025
-
Maxim Mironjuk
-
October 02, 2025
A release artifact that has been altered without anyone noticing is more dangerous than a build that visibly fails. SHA256 checksums, GPG signatures and automated verification steps in the GitLab pipeline close this silent attack surface for Magento deployments.
-
Maxim Mironjuk
-
October 01, 2025
PHP arrays only accept integers and strings as keys, objects are silently rejected with an error or coerced into a useless string. SplObjectStorage closes that gap by allowing objects as keys, compared by identity. Using object metadata and graph traversal as examples, we show where this actually helps in day-to-day code.
-
Maxim Mironjuk
-
October 01, 2025
Anyone who implements swatches for configurable products as mere color boxes without a well thought out state model ends up with price, gallery, and stock bugs on the product detail page. A clean Alpine.js state machine, a proper ViewModel, and a GraphQL-ready data model make Hyvä swatches robust, accessible, and cache friendly at the same time.
-
Maxim Mironjuk
-
October 01, 2025
Viewport breakpoints are not enough: components need to react to their own size, not to the window width. x-resize brings the ResizeObserver into Alpine.js declaratively, without a single line of boilerplate code.
-
Maxim Mironjuk
-
October 01, 2025
A leap from PHP 5.6 straight to PHP 8 skips four major versions, each with its own breaking changes, removed functions and altered error handling. This article shows a multi-stage migration strategy with intermediate versions, a compatibility layer and a test safety net, instead of a risky single-step jump.
-
Maxim Mironjuk
-
October 01, 2025
ROWS and RANGE both define a window frame, but they do it in fundamentally different ways: ROWS counts physical row positions, RANGE looks at logical value ranges of the sort column. With unique sort values, both return the same result, but with ties in the sort column, ROWS and RANGE can produce different numbers for the same query.
-
Maxim Mironjuk
-
October 01, 2025
Zero downtime is promised often and defined rarely. This article explains honestly where a symlink switch truly works without any outage, and where database migrations unavoidably require a short maintenance window.
-
Maxim Mironjuk
-
October 01, 2025
Testability is not created when the tests are written, but when the classes themselves are designed. Injecting dependencies, isolating side effects, and avoiding static calls builds code that can be tested without detours, no matter which test framework ends up being used. This article shows the design principles behind testable PHP code, beyond assertions and test runners.
-
Maxim Mironjuk
-
October 01, 2025
TypeScript ships several minor releases a year, each bringing tangible improvements to type safety and developer productivity. This article puts the most important TypeScript 5.x additions in context, including standardized decorators, const type parameters, and the satisfies operator, and shows with concrete before-and-after examples which features actually make a difference in daily work.
-