zicht/standards-php
Zicht's shared PHP coding standards package bundles PHP_CodeSniffer rules and static analysis configuration for consistent code style across projects. Install it with Composer and reference the ruleset in your phpcs.xml to enforce quality checks.
zicht/standards-php is not an application dependency — it's an opinionated phpcs ruleset distributed as a Composer package. The real decision it informs is whether your team maintains its own coding standard, adopts a vendor's, or composes one from PSR-12 plus a sniff library (Slevomat, Doctrine, etc.). This package is the "buy" option, and a cheap one to trial.Consider it when:
phpcs-based (Composer script, CI step, pre-commit hook). Adding a ruleset is a one-line phpcs.xml include, so the trial cost is measured in minutes.ruleset.xml is a genuinely useful way to see which sniffs a peer organization considered non-negotiable.Look elsewhere when:
phpcs ruleset here creates a second toolchain and a second set of opinions.phpcs major version. If nobody on your team is willing to own a fork, the total cost of ownership is higher than the license suggests.phpcs major version (3.x vs. 4.x) before committing; a ruleset that pins an old phpcs will block other tooling upgrades and turn into a migration project.phpcs reports; phpcbf fixes a subset. If the goal is "developers never think about formatting," a formatter-first tool (php-cs-fixer, Pint) delivers more of the outcome with less friction.Net PM read: treat this as a reference implementation and a fork candidate, not a strategic dependency. The adoption decision should be gated on a one-day spike: does it install cleanly against your PHP/phpcs versions, and how many violations does it produce on your current codebase?
To executives — one paragraph. We spend senior engineering time reviewing formatting instead of logic, and we answer "what's our code standard?" with a wiki page nobody reads. This package is a pre-built, one-line-install coding standard that turns that convention into an automated CI gate — no feature work displaced, effectively zero license cost. The catch is that it's an unmaintained single-vendor artifact (no community adoption), so I recommend a bounded one-day evaluation, then either adopt with a named internal owner or fork the ruleset into our own repo. Either way, we end up owning our standard explicitly, which is the outcome we actually want.
To engineering — the practical case. It's a phpcs ruleset on Packagist. Add it, point phpcs.xml at it, wire it into CI, and style stops being a review topic. Two caveats worth saying out loud before anyone gets attached: it has no dependents and no visible community, so it is not a safe long-term unpinned dependency; and it will fight with Pint if you're a Laravel shop, so pick one toolchain. Recommendation: run it as a read-only audit on the current codebase first to size the violation backlog, then decide between adopting it pinned, forking it, or building a PSR-12 + Slevomat ruleset we control. The audit is the deliverable; the dependency decision comes after.
To the team — what changes day to day. Nothing about how you write code that already passes review; the linter just makes it explicit and stops the same three comments from appearing on every PR. Expect a one-time cleanup diff, and expect to add a baseline or exclusion list for legacy directories rather than reformatting the world.
How can I help you explore Laravel packages today?