Page 19 - Monthly Archives: September 2025
-
Maxim Mironjuk
-
September 03, 2025
Vue memory leaks almost always originate in the same three places: forgotten event listeners, timers that never get stopped, and watchers without cleanup when a component unmounts. Chrome devtools heap snapshots let you confirm any suspicion with solid evidence, instead of changing code based on guesswork that does not even touch the actual leak.
-
Maxim Mironjuk
-
September 03, 2025
Who deployed what to production, and when? In e-commerce, that's not an academic question, it's a compliance requirement. GitLab provides the tools to make deployments traceable, from audit logs through protected branches to enforced review processes.
-
Maxim Mironjuk
-
September 03, 2025
Few sentences frustrate a development team as reliably as it works on my machine, followed by a glance at a red GitLab pipeline. Almost always the root cause is not the code itself but a difference between the local environment and the CI runner, whether a different PHP version, a missing extension, a wrong timezone, or a cache holding something different locally than in the pipeline. This article shows a systematic approach for pinpointing such discrepancies deliberately instead of guessing.
-
Maxim Mironjuk
-
September 03, 2025
Anyone who treats PHPUnit results as nothing more than terminal output is throwing away most of the value that automated tests provide. JUnit XML, HTML coverage, Teamcity output, and structured test duration reports make test results analyzable for CI systems, teams, and monitoring, well beyond a single build run.
-
Maxim Mironjuk
-
September 03, 2025
Testing Doctrine repositories with pure mocks rarely exercises the actual query. An in-memory SQLite database runs DQL and query builder calls for real, without any database server, and makes repository tests run in milliseconds instead of seconds.
-
Maxim Mironjuk
-
September 03, 2025
Magento ships MSI with two built-in source selection algorithms: Priority and Distance. For many operations that is not enough once current warehouse utilization, per-carrier shipping cost, or a combination of several criteria needs to drive the selection. This article shows how to implement a custom algorithm as a full-fledged replacement and register it correctly via di.xml.
-
Maxim Mironjuk
-
September 02, 2025
Nuxt modules are the tool for extending the build process, the runtime, and even the developer tooling of a Nuxt project. In this article we build a module step by step that hooks into the build process, ships typed options, and finally registers its own tab in Nuxt DevTools.
-
Maxim Mironjuk
-
September 02, 2025
Autowiring makes Symfony development convenient, but used carelessly it creates unnecessary objects on every single request. With lazy services, ghost objects and service subscribers, kernel boot performance can be noticeably improved without giving up autowiring entirely.
-
Maxim Mironjuk
-
September 02, 2025
mironsoft.de › Blog › Design Patterns
Magento 2 · Design Patterns
Active Record Pattern
in Magento 2
The Active Record Pattern combines database access and business logic in a single object. Magento 2 is historically built on it, yet modern Magento 2.4.8 clearly favors the Repository Pattern. Why that is, which bugs are typical, and how the migration succeeds.
15 min read
PHP 8.4
Magento 2.4.8
The Active Record Pattern: origin and definition
The Active Record Pattern was described by Martin Fowler in his 2002 book "Patterns of Enterprise Application Architecture" and has shaped web development ever since. The core idea
-
Maxim Mironjuk
-
September 02, 2025
A responsive product grid pattern with auto-fill, minmax and aspect-ratio ensures product cards stay evenly distributed at every screen size, without maintaining a separate media query for every column count. This technique is the difference between a category grid that breaks at every new screen width and one that adapts by itself.
-