Page 181 - Mironsoft Blog
-
Maxim Mironjuk
-
September 02, 2025
The default Alpine.js build evaluates expressions in x-data and x-on through new Function(), which gets blocked immediately under a strict Content Security Policy without unsafe-eval. The dedicated Alpine.js CSP build replaces that evaluation with a safe expression parser, making reactive components possible even in environments with the strictest security policy.
-
Maxim Mironjuk
-
September 02, 2025
mironsoft.de › Blog › Design Patterns
Magento 2 · Design Patterns
Injectable & Virtual Types
in Magento 2
Why can a Product object not be injected directly via the constructor, yet a ProductRepository can? The distinction between Injectable and Non-Injectable Objects is fundamental to Magento 2 DI. Virtual Types elegantly solve a common di.xml problem on top of that.
15 min read
PHP 8.4
Magento 2.4.8
What are Injectable Objects?
Injectable Objects are the foundation of Magento 2 dependency injection. The term describes classes that can be safely wired into other classes via constructor injection, because they are stateless or at least request-scoped
-
Maxim Mironjuk
-
September 01, 2025
Most PhpStorm users use less than 20 percent of the available shortcuts and navigation features. Anyone who learns to move through large PHP codebases without a mouse, run refactorings with keyboard combinations and use multi-cursor editing doubles their productivity in a short amount of time.
-
Maxim Mironjuk
-
September 01, 2025
Anyone who backs up SEO success with nothing but rankings and raw traffic numbers will lose the next budget discussion to channels with clear revenue attribution. This guide shows how to separate vanity metrics from business-relevant KPIs, cleanly report organic revenue through last-click and multi-touch attribution, and deliver C-level, marketing, and development teams exactly the figures they actually need to make sound decisions.
-
Maxim Mironjuk
-
September 01, 2025
A generic code review misses the traps that specifically cause production problems in Magento: misused preferences, broken public APIs, install scripts instead of schema. A Magento-specific code review checklist surfaces these risks systematically before they get merged.
-
Maxim Mironjuk
-
September 01, 2025
Code reviews in Vue teams rarely fail because of a lack of willingness, they fail because of a missing framework. Without clear criteria, reviews turn into subjective style debates instead of real quality checks. This article shows which review patterns actually matter, from component design through reactivity mistakes to Pinia store quality and TypeScript integration.
-
Maxim Mironjuk
-
September 01, 2025
Every CSS stylesheet that gets loaded in the without optimization blocks the browser until it has been fully downloaded and parsed. Setting critical CSS inline and loading the rest asynchronously is the single most effective step you can take for better Core Web Vitals, and it can be implemented entirely at the CSS level.
-
Maxim Mironjuk
-
September 01, 2025
Simply deleting a field from the schema because the backend team no longer needs it is not deprecation, it's a breaking change. A proper GraphQL deprecation workflow marks fields with the @deprecated directive, measures their real usage, and only removes them once the data shows no consumer is affected anymore.
-
Maxim Mironjuk
-
September 01, 2025
Log tables like report_event, customer_visitor, and catalog_compare_item log visitor behavior and grow with every page view, often faster than any other table group in the store. Once you configure built-in log cleaning correctly and build custom scripts for tables without automatic cleanup, you keep the database lean without giving up important reporting data.
-
Maxim Mironjuk
-
August 31, 2025
x-intersect is the Alpine.js directive that turns the browser's IntersectionObserver API into a declarative HTML directive. It turns scroll animations, image lazy loading, one-time triggers and observed sections into a pure HTML task, without a single line of manual JavaScript observer code.
-