Page 11 - Monthly Archives: May 2025
-
Maxim Mironjuk
-
May 14, 2025
The category page is the most important performance hotspot in almost every Magento shop. Too many fields, resolver chains that run too deep, and missing caching strategies make it slower than it needs to be. The lever is in the query, not the server.
-
Maxim Mironjuk
-
May 14, 2025
Invalid fields, mistyped arguments, and deprecated fields that keep getting used anyway: all of it can be caught right in the editor with GraphQL linting, instead of tripping over a cryptic server error at runtime.
-
Maxim Mironjuk
-
May 14, 2025
useFetch is, at its core, a convenience wrapper around useAsyncData combined with $fetch. As soon as custom transform functions, precise caching keys, or a data source more complex than a plain HTTP request come into play, reaching for useAsyncData directly is usually the clearer choice.
-
Maxim Mironjuk
-
May 14, 2025
A zombie process has already terminated, yet its parent process never collected its exit status, leaving a blocked entry in the process table. This guide explains the difference between zombies and orphaned processes, shows why kill -9 is completely ineffective, and gives concrete commands to find the responsible parent process and fix the problem permanently in code.
-
Maxim Mironjuk
-
May 14, 2025
Nested resources such as order items under an order look intuitive at first glance, but if used without thought they quickly lead to cluttered URL structures and duplicated authorization logic. This article shows how to cleanly model subresources in API Platform through uriTemplate and when a standalone resource is the better choice.
-
Maxim Mironjuk
-
May 14, 2025
Headless commerce separates the Magento backend from a standalone frontend via a GraphQL API, whether that frontend is a PWA, a native app, or an IoT terminal. This article provides a concrete decision framework: when the extra complexity pays off through multi-channel requirements and separate teams, and when Hyva as a server-rendered default setup remains the faster and cheaper choice.
-
Maxim Mironjuk
-
May 13, 2025
A Docker image is only as secure as its base image and the system packages installed inside it, and that is exactly where many vulnerabilities hide that neither SAST nor Dependency Scanning catch, since both focus on application code and language packages. GitLab's Container Scanning closes this gap by checking the fully built image directly in the pipeline against a vulnerability database. This article covers the integration, the difference to a standalone tool like Trivy, and how the results end up in the merge request widget.
-
Maxim Mironjuk
-
May 13, 2025
Staggered chapter counters, nested lists with mixed styles, custom markers for list items: pure CSS handles all of it with counter-reset, counter-increment, and counter(). Once you understand the system, you can strike JavaScript counters from your toolkit for good.
-
Maxim Mironjuk
-
May 13, 2025
Prepared statements are often understood purely as a defense against SQL injection, but they are also a performance tool for repeatedly executed queries. This article explains why string concatenation is structurally unsafe, how prepared statements solve this problem, what the difference between server-side and client-side prepare is, and shows correct implementations with PDO and mysqli, including common pitfalls.
-
Maxim Mironjuk
-
May 13, 2025
As soon as a class uses two traits with same-named methods, PHP reports a fatal error unless the conflict is resolved explicitly. insteadof decides the winner, as assigns alias names and changes visibility. This article shows both operators in detail and where trait conflicts typically arise in real projects.
-