sjparkinson/static-review
Static Review is a PHP tool that runs configurable static-analysis checks on files staged for commit, helping catch code-quality issues before they reach the repository. It integrates with linters like PHP_CodeSniffer and PHP Mess Detector and fits into Git hooks or custom workflows.
Architecture fit: sjparkinson/static-review is a framework for orchestrating version control hooks, not a Laravel application package. Its natural placement is developer tooling: .git/hooks locally and equivalent checks in CI. It does not belong in Laravel runtime, service-provider bootstrapping, or production deployment paths. For a TPM, the architectural question is whether the team wants a hook orchestration layer separate from CI policy, not whether it integrates with Laravel’s container or HTTP stack. It is framework-agnostic, so Laravel fit is indirect: it can call PHP linting, static analysis, coding-standard, and test commands already used by a Laravel project.
Integration feasibility: Feasible only as a constrained dev-tooling dependency. A typical path would install it via Composer in require-dev, add hook wiring, and invoke existing Laravel/PHP checks such as Pint, PHPCS, PHPStan/Larastan, Pest/PHPUnit, or Composer audit. However, the package is archived and last released in 2017-11-28. That creates immediate compatibility uncertainty against modern PHP 8.x, current Composer, Git versions, and Laravel 10/11/12 tooling. Integration should be treated as a compatibility spike, not a committed implementation.
Technical risk: High. The primary risk is not functional capability but lifecycle: archived upstream, no security or compatibility maintenance, no guaranteed fixes for newer PHP or VCS behavior, and limited modern documentation. A 316-star count and low score signal a niche tool with weak ecosystem momentum. There is also hook-specific operational risk: developers can bypass local hooks, hook installation is inconsistent across machines, and local behavior can drift from CI. MIT licensing reduces legal risk and permits an internal fork, but forking transfers maintenance burden to the team.
Key questions:
require-dev, or is an internal fork required?Stack fit: Moderate conceptual fit, weak lifecycle fit. Laravel projects already depend on Composer-based dev tooling, so a CLI hook runner can coexist with Pint, PHPStan/Larastan, PHPCS, Pest/PHPUnit, and Composer scripts. But static-review is not Laravel-aware and should not be presented as a Laravel integration. Its value is limited to teams that specifically need an extendible VCS hook framework and are willing to own it.
Migration path: Do not introduce it as a new strategic dependency. If already present, isolate it as a dev-only tool, pin the exact version, document the hook contract, and create a replacement plan. If evaluating from scratch, run a time-boxed spike against the current Laravel PHP version, then prefer a maintained alternative or a small internal script. If the extension model is uniquely valuable, fork under an internal namespace, add CI coverage, and publish internally.
Compatibility: Treat compatibility as unproven until validated. The 2017 release predates modern PHP and Laravel versions. Check PHP constraint resolution, Composer 2 behavior, Git hook invocation, Windows/macOS/Linux behavior, and interaction with existing hooks. Also verify whether hook installation is automated or manual, because manual setup will not scale across a Laravel team.
Sequencing:
require-dev, pin the version, document bypass policy, and add CI parity.Maintenance: Archived status means no upstream maintenance. The team must own PHP compatibility, dependency updates, security review, and bug fixes. Even as a dev-only dependency, it adds supply-chain surface. A TPM should require an owner and a scheduled review; otherwise it becomes orphaned tooling.
Support: Community support only, with stale documentation and no vendor SLA. Internal onboarding must rely on a short runbook: how hooks are installed, how to run checks manually, how to bypass intentionally, and what CI enforces. Without that, developers will experience inconsistent results and support load will shift to senior engineers.
Scaling: Local hooks scale poorly if checks are slow or serial. Large Laravel repositories with full static analysis and test suites can make pre-commit hooks painful, leading to bypasses. Use it only for fast checks, and keep heavier analysis in CI. Multi-platform teams need explicit Windows and container support, which is a common failure point for Git hooks.
Failure modes: Hook not installed; hook installed but stale; PHP version incompatibility; Composer autoload failure; check command missing from a developer machine; false positives blocking commits; developers bypassing with --no-verify; local/CI drift; archived dependency breaking after PHP upgrade; and unclear ownership when hooks fail. The most important control is CI parity: local hooks should be convenience, not the sole quality gate.
Ramp-up: Conceptually low: developers understand pre-commit checks. But practical ramp-up is moderate because the package is old, configuration is not Laravel-native, and behavior must be documented. A TPM should budget a short spike and a runbook, not a large migration. Recommendation: do not adopt as a new standard for a Laravel/PHP team unless an internal fork or narrow, well-understood use case justifies the ownership cost; prefer maintained hook orchestration or CI-first enforcement.
How can I help you explore Laravel packages today?