Magento Blog: Guides and Practical Know-how | Page 362 | mironsoft
Magento Blog
-
Jan 6, 2025
docker system prune only cleans up locally; the growth of a self-hosted Docker registry with thousands of pushed images is completely unaffected by it. Registry-side garbage collection and thoughtful retention policies are the actual lever against runaway storage consumption.
-
Jan 6, 2025
A separate document describing a test suite's purpose and structure feels helpful the moment it's written, but in practice almost inevitably goes stale within a few months, once the described test code keeps evolving while the document itself stays frozen. The most effective form of test documentation is therefore not a separate, independently maintained document, but the test code itself, provided it's written so it reveals its own intent without any additional explanation.
-
Jan 6, 2025
Express ships with only weakly typed request and response objects out of the box. With generic types for body, params and query, typed middleware chains and a clear error class hierarchy, a fragile JavaScript framework becomes a TypeScript backend architecture that reports errors at compile time instead of at runtime.
-
Jan 6, 2025
Static tests in Magento 2 catch exactly the class of problems that neither PHPStan nor PHPUnit see: violations of the Magento Coding Standard, undeclared dependencies between modules, and legacy patterns quietly reintroduced into the codebase. Whoever takes the suite under dev/tests/static seriously prevents exactly the kind of structural failure that only becomes visible at the next major upgrade or when module load order changes.
-
Jan 5, 2025
Clickjacking tricks users with an invisible iframe layered over a real page, making them unknowingly trigger critical actions like deleting an account or confirming a transfer. Classic JavaScript frame-busting can be bypassed, while X-Frame-Options and the CSP directive frame-ancestors work as HTTP headers that reliably stop a page from being framed at all.
-
Jan 5, 2025
Anyone maintaining a library or tool for multiple PHP or Node versions can hardly avoid test matrices. This article shows how parallel: matrix: in GitLab CI turns a single job definition into several parallel test runs, and how to balance runtime cost against test coverage.
-
Jan 5, 2025
A schema with three different styles for the same thing costs every team time, patience, and trust in the API. Clear GraphQL naming conventions for types, fields, mutations and enums make a schema self-explanatory and can be anchored in a team for good with a style guide and linting.
-
Jan 5, 2025
Layered navigation is essential for Magento shops with a large assortment, since it lets customers narrow products down by size, color, brand, or price. From an SEO perspective, however, this exact flexibility creates a structural problem: every filter combination theoretically generates its own URL, quickly turning a single category page into thousands of nearly identical variants. This article shows how to get this duplicate content risk under control with a clear canonical strategy and a deliberate selection of indexable filter combinations.
-
Jan 5, 2025
Magento GraphQL can be extended in a targeted way, but opening up the schema without preparation builds performance problems into your project through N+1 database queries. The right approach goes through extension attributes, cleanly isolated resolvers, and a clear separation between schema definition and data access.
-
Jan 5, 2025
Kubernetes decides whether a pod needs restarting or should be pulled out of load balancing based on health checks, but those two decisions need different information. A liveness check only answers whether the PHP process is running at all, while a readiness check has to verify the application can actually handle traffic meaningfully, for example whether the database connection is up. Answering both checks through the same endpoint risks either unnecessary restarts or sending traffic to pods that aren't actually ready.