Contributions
Shaping the tools I use every day, one pull request at a time
A hand-picked selection: only the contributions worth reading about, not every merged pull request. Articles about Magento and Adobe Commerce are on the blog.
Cache the repeated category query in ElasticSuite — on GitHub
Blackfire showed the same database call executed three times while rendering a category page. Kept the result in an object cache for the request.
Extract request-to-model mapping into a hydrator — on GitHub
Adding one field to a menu meant inheriting the whole Save controller. With a hydrator service, an after plugin is enough.
Fix MAGENTO_BACKEND_BASE_URL being ignored — on GitHub
Admin steps used amOnPage, which ignores a separate backend domain, so anyone running the admin on its own host could not run the suite. Switched to amOnUrl and put URL resolution in one class instead of five.
Rewrite the routing guide around ActionInterface — on GitHub
Official 2.4 documentation still taught the controller style the core had just moved away from. Ported the material from my DevBlog article on controller decomposition, with a routing flow diagram and the action interfaces developers actually need.
Generate PhpStorm URN mappings relative to the project root — on GitHub
The URN generator wrote absolute filesystem paths into .idea/misc.xml, so committing that file broke autocompletion for every other developer on the team.
Repair test names so silently skipped Page Builder tests run again — on GitHub
Test class names did not match their file names, so MFTF never collected them — a green suite that was quietly running less than it claimed. Renaming across 71 files put the tests back, along with the failures they had been hiding.
Fail loudly when a page URL cannot be resolved — on GitHub
Write {{AdminLoginPage}} instead of {{AdminLoginPage.url}} and MFTF navigated to the literal placeholder string, failing several steps later with an error that pointed nowhere. Now it throws where the mistake actually is.
Add the <magentoCron> test action — on GitHub
Functional tests waited on real cron or faked it with CLI calls. A first-class action that runs cron groups and respects the 60-second interval between runs of the same group.
Refactor the TestGenerator class — on GitHub
The class that turns XML tests into PHP was the least readable and one of the slowest parts of the framework. Same output, far less to hold in your head.
Only merged work is listed here, and only the parts worth a comment — the full history, including everything still in review, lives on GitHub.
taxjar:transactions:sync -f 2022/02/10silently ignored the date: the observer readfrom/towhile the command passedfrom_date/to_date. Every backfill quietly synced the wrong range.