cloak/peridot-cloak-plugin
A Peridot plugin that brings Cloak into your PHP test suite, letting you wire up its features directly from your specs with minimal configuration. Install via Composer, enable the plugin, and keep your tests readable and expressive.
What this package actually is. cloak/peridot-cloak-plugin is a bridge between two niche PHP testing tools: Peridot (a BDD-style test runner) and Cloak (a code-coverage threshold enforcer). It is not a Laravel package. It has no service provider, no config publish tag, no facade, and no Laravel integration surface. Any framing of this as a "Laravel package" is inaccurate, and that misconception is itself the first evaluation finding.
Architecture fit. The plugin's role is narrow and test-time only: it hooks Peridot's lifecycle to start/stop coverage collection and assert a minimum coverage percentage against a Cloak config. That is a legitimate CI gate concern, but it sits entirely outside the application runtime. In a modern Laravel codebase the equivalent capability is already first-class: PHPUnit 9+ supports <coverage> thresholds in phpunit.xml, Pest exposes --coverage --min, and CI tools (SonarQube, Codecov, Coveralls) provide trend gating. The architectural value this package would add in 2025 is essentially zero.
Integration feasibility. Mechanically possible via Composer, but practically blocked. The last release is January 2015, the repository is archived, and there are zero dependents and zero stars. Cloak itself and Peridot both sit far outside mainstream PHP testing adoption, which means we would be integrating an abandoned bridge between two low-adoption tools. Feasibility is "technically installable, operationally unsupported."
Technical risk. High and concentrated in version drift:
each(), string/array function signature changes, create_function removal) will very likely break it outright.xdebug_start_code_coverage / xdebug_get_code_coverage. Xdebug 3 changed defaults, modes (XDEBUG_MODE=coverage), and behaviors. This is a common silent-failure point.opportunity: 5.87 score is inconsistent with the objective evidence (archived, 0 stars, 0 dependents, 10-year-old release). I would treat that score as unreliable and disqualifying evidence rather than a positive signal.Key questions for the requesting team.
Stack fit. Poor for Laravel. Laravel's testing convention is PHPUnit, with Pest as the modern expressive alternative. Peridot occupies a small, older slice of the PHP BDD landscape (competing historically with PHPSpec/Behat-style tooling). Introducing Peridot solely to use this plugin would be an inverted decision: adopting an abandoned runner to gain an abandoned coverage gate.
Recommended migration path (do not adopt). Replace the capability, not the package:
<coverage><report> with failOnWarning/threshold enforcement, or Pest's --coverage --min=NN, or a CI-side check against a Clover/Cobertura report.describe/it/expect syntax on top of PHPUnit, with full Laravel integration and active maintenance.Compatibility. Assume incompatibility with PHP 8.x and Xdebug 3 without a fork. Even with a fork, Cloak's threshold semantics are trivially reproducible in ~30 lines of CI script, which undermines the case for maintaining a fork.
Sequencing.
Maintenance. Upstream maintenance is zero — the repository is archived and the last release is a decade old. Any adoption converts into an internal fork obligation: PHP version bumps, Xdebug API changes, and Composer resolution conflicts all become our problem. That is a permanent tax for a capability we can obtain from maintained tooling at no cost.
Support. No maintainer, no issue triage, no security advisories, no CVE response path. For a dependency in the build chain this is tolerable only if the blast radius is confined to CI, but it still represents unpatched code executing in our pipeline. Community knowledge is effectively nonexistent (0 stars, 0 dependents), so troubleshooting is entirely self-service.
Scaling. Runtime scaling is a non-issue — it executes only during tests. The scaling concern is matrix scaling: as PHP versions, Xdebug modes, and CI runners multiply, the probability of an incompatibility in a 2015 package approaches one. Coverage collection is also the slowest part of a test run; Cloak's era predates parallel coverage merging, so large suites would need bespoke handling that modern tools provide natively.
Failure modes.
XDEBUG_MODE, missing extension) and the threshold check passes trivially — worse than no gate, because it creates false assurance.Ramp-up. Low for anyone who already knows PHPUnit-style coverage concepts, but Peridot itself is unfamiliar to most PHP engineers hired in the last several years, so onboarding cost is paid in an unusual framework plus a bespoke plugin. Contrast with PHPUnit/Pest, where ramp-up is near zero because the tooling is already in every Laravel engineer's muscle memory.
Recommendation. Decline adoption. The package is archived, unmaintained, decade-stale, non-Laravel, and duplicates a capability that is natively supported and actively maintained in the current Laravel testing stack. Record the decision and the standard replacement pattern so the request does not recur. If a legacy Peridot footprint genuinely exists, scope a port rather than an integration.
How can I help you explore Laravel packages today?