irstea/phpmd-shim
A lightweight Composer shim for PHP Mess Detector (PHPMD) that lets PHP projects run PHPMD static analysis without a globally installed binary. It simplifies setup for local development and CI, helping teams enforce code-quality rules consistently.
phpmd/phpmd directly and manage the constraint conflict at the project level. Unless there's a specific Composer resolution problem this shim uniquely solves, upstream is the lower-risk answer.Consider it only when:
Look elsewhere when:
phpmd/phpmd directly; the shim adds a dependency hop for no benefit unless you can name the constraint it unblocks.To executives: This is not a product feature — it's internal plumbing. It's a thin wrapper published by a research institute to make PHPMD, a PHP code-quality checker, install cleanly in a constrained Composer environment. It has effectively zero external adoption and no ecosystem behind it. The decision on the table is narrow: whether to inherit a small, unmaintained dependency in exchange for unblocking a static-analysis pipeline, and if so, for how long. Our recommendation is to treat it as a tactical, time-boxed bridge, not a strategic dependency, and to budget the cost of migrating to upstream PHPMD or to PHPStan.
To engineering: Use it only if you can articulate the exact Composer constraint conflict it resolves. Document that conflict in the repo, pin the version, and set a review date. Audit the diff against upstream before adopting — a shim should be boring and minimal. If it's more than a constraint patch, escalate. Do not introduce it into new services; use upstream or PHPStan. Add a dependabot-style check so we notice if it stops tracking upstream, and assign an owner so it doesn't silently rot.
How can I help you explore Laravel packages today?