Monthly Archives: January 2026
-
Maxim Mironjuk
-
January 31, 2026
willReturn() covers the vast majority of all mocking needs, return a fixed value, done. Sometimes that is not enough though: a mock needs to react differently depending on the argument it receives, or its behavior needs to change dynamically across several calls. That is exactly what willReturnMap and willReturnCallback are for. This article explains how both work and where the line sits, past which a mock already contains too much logic of its own.
-
Maxim Mironjuk
-
January 31, 2026
Unreviewed Composer dependencies are among the most common entry points in Magento and PHP projects. This article shows how composer audit, Roave Security Advisories and automated CI pipelines reliably surface known vulnerabilities before they reach production, and how teams separate real risk from pure scan noise without manually reviewing every single warning.
-
Maxim Mironjuk
-
January 31, 2026
One hundred percent code coverage only means every line was executed once, not that a test would actually notice a real bug. Mutation testing flips that question around: Stryker deliberately turns individual lines of code into small bugs and checks whether your tests actually catch these mutants and fail, instead of silently staying green.
-
Maxim Mironjuk
-
January 31, 2026
Not every random number in PHP is equally secure. While rand() and mt_rand() are fine for games and simulations, they are dangerously predictable for tokens, password reset links or cryptographic keys. random_bytes, random_int and the Randomizer class from PHP 8.2 deliver genuinely cryptographically secure random values for exactly these cases.
-
Maxim Mironjuk
-
January 31, 2026
Apollo Federation v2, schema stitching and the Backend for Frontend pattern all solve the same underlying problem: coordinating distributed GraphQL data access. Which pattern fits when depends on team size, ownership boundaries and runtime requirements.
-
Maxim Mironjuk
-
January 31, 2026
A flaky test that alternately passes and fails without any change to the code undermines trust in the entire CI pipeline. Claude helps with root cause analysis by systematically evaluating logs, stack traces, and patterns from repeated runs, narrowing down typical causes such as race conditions or test isolation failures.
-
Maxim Mironjuk
-
January 31, 2026
Clicking Import manually in the admin area works fine for one-off data migrations, but for recurring supplier feeds or daily stock syncs it's an operational risk: if someone forgets to click, data quietly goes stale and nobody notices. Driving Magento's import model programmatically from a custom cron job gets you automation, error evaluation, and notification in one package, with no third-party extension required.
-
Maxim Mironjuk
-
January 30, 2026
LinkedIn rewards content that keeps users on the platform and structurally penalizes anything that sends them away immediately. A workable LinkedIn SEO strategy has to actively manage this conflict between reach on the platform and traffic to your own website, instead of ignoring it.
-
Maxim Mironjuk
-
January 30, 2026
Anyone adding a custom order status to Magento 2 for the first time almost always trips over the same confusion: order state and order status are two separate layers, and skipping past that distinction produces statuses that cannot be filtered in the admin grid or that trigger email notifications nobody expected. This article explains the structure of Magento's order workflow system in detail and shows how to correctly register a new status, assign it to a state, and hook it into existing status transitions and notification paths.
-
Maxim Mironjuk
-
January 30, 2026
Whether a text gets cited in an AI answer depends less on style than on structure. Self-contained paragraphs, clear claims at the start of a sentence, explicit definitions and concrete numbers turn plain prose into citable content a language model can adopt without any extra interpretation.
-