Page 10 - Monthly Archives: March 2025
-
Maxim Mironjuk
-
March 21, 2025
PHP was designed for a model where every request spins up a new process or at least a fresh execution context, which does not fit WebSockets, which expect a permanently open connection. Ratchet solves that problem via an event loop built on ReactPHP. We build a real-time notification server and show concretely where the scaling limits of a PHP WebSocket server in production actually sit.
-
Maxim Mironjuk
-
March 21, 2025
inotify is a kernel interface that notifies Bash scripts the instant a file or directory changes, instead of checking again and again in a loop. With the command line tool inotifywait from the inotify-tools package, you can build deployment triggers, config reloads and log watchers that react to real events rather than a fixed time interval.
-
Maxim Mironjuk
-
March 21, 2025
text-wrap balance and text-wrap pretty solve two different line break problems: balance evens out short headings across all lines, pretty prevents single words from being left alone at the end of body text paragraphs. Using both values deliberately instead of interchangeably yields noticeably cleaner typography without any extra JavaScript.
-
Maxim Mironjuk
-
March 20, 2025
axe-core checks a rendered page against a fixed catalog of automatable accessibility rules, such as color contrast, missing form labels, or incorrectly nested headings, and integrates through @axe-core/playwright in end-to-end tests as well as through vitest-axe in component tests. It's important to know the limits of automated checking, though, since tab order logic and content clarity fall outside what it can cover.
-
Maxim Mironjuk
-
March 20, 2025
Anyone who tests HTTP clients only with real API calls ends up with slow, fragile tests that turn red the moment the network hiccups. Guzzle's MockHandler, response stacks and custom HTTP adapters give you full control over every response scenario, success, timeout, server outage and retry cascade, directly inside PHPUnit, deterministic and fast.
-
Maxim Mironjuk
-
March 20, 2025
Search fields that load results while the user types. Forms that validate fields in real time. Cart components that react to clicks without a page reload. All of this with PHP and Twig. Symfony UX Live Component makes PHP components reactive without needing React or Vue.
-
Maxim Mironjuk
-
March 20, 2025
Claude can turn existing code, tests, and commit history into a solid first documentation draft, saving real time compared to writing from scratch. That draft is not a finished product though, since accuracy, tone, and keeping the text in sync with the actual code remain tasks that developers still have to own and verify by hand.
-
Maxim Mironjuk
-
March 20, 2025
The choice between OpenAPI-First and Code-First is not a technical decision, it is an organizational one. It depends on team size, product maturity, number of consumers and synchronization requirements. This guide provides a structured decision framework, with concrete tooling recommendations for both approaches.
-
Maxim Mironjuk
-
March 20, 2025
Git submodules promise to cleanly stitch multiple repositories together, but in practice forgotten updates, a confusing detached HEAD state, and diverging commit pins across the team cause frustration on a regular basis. This article explains how submodules technically work, compares them with git subtree, Composer based dependencies, and monorepos, and shows which tool actually fits typical Magento multi repo setups.
-
Maxim Mironjuk
-
March 20, 2025
NTP reliably synchronizes system clocks to within a few milliseconds, but certain applications need far more: sub-microsecond accuracy across the local network. This guide explains how PTP under IEEE 1588 works with hardware timestamping, how linuxptp with ptp4l and phc2sys is set up on Linux, and when the extra effort compared to NTP actually pays off.
-