DecomposerInterface.CONTRIBUTING.md).| Risk Area | Mitigation Strategy |
|---|---|
| False Positives | Customize DecomposerInterface to filter irrelevant packages (e.g., dev-only). |
| Performance Impact | Run asynchronously (e.g., via Laravel queues) or on-demand (e.g., /debug/decompose). |
| Report Bloat | Use --depth flag to limit dependency recursion or exclude specific vendors. |
| Version Skew | Pin package version in composer.json to avoid breaking changes (e.g., ^2.0). |
| Non-Composer Assets | Extend with custom decomposers for Docker, Terraform, or cloud configs. |
DecomposerInterface.)/api/dependency-report).artisan decompose for local debugging.composer.json and Laravel version compatibility.composer require lubusin/laravel-decomposer.php artisan vendor:publish --provider="Lubusin\Decomposer\DecomposerServiceProvider".DecomposerInterface for missing assets (e.g., Docker, AWS SDK).dev packages).| Component | Compatibility Notes |
|---|---|
| Laravel | Tested on 8.x–11.x. For older versions, check composer.json for laravel/framework constraints. |
| PHP | Requires 8.0+. No runtime performance impact unless reports are large. |
| Composer | Works with Composer 2.x+. Avoid composer.lock conflicts by pinning versions. |
| Custom Assets | Extendable via DecomposerInterface for non-PHP assets (e.g., package.json). |
| CI/CD | Lightweight; can run in GitHub Actions, GitLab CI, or CircleCI without blocking builds. |
artisan decompose).deploy.php (Deployer):
task('generate-report', function () {
$this->runShared('php artisan decompose:generate --format=json --output=/tmp/report.json');
})->desc('Generate dependency report');
symfony/security-pack).DEPENDENCIES.md in the repo.composer update guesswork.config/decomposer.php (published by the package).'filters' => [
'exclude' => ['monolog/monolog', 'phpunit/phpunit'], // Skip dev packages
'include' => ['guzzlehttp/guzzle'], // Focus on critical deps
],
'custom_decomposers' => [
\App\Decomposers\DockerComposer::class,
],
getDependencies() is the bottleneck, not the package.How can I help you explore Laravel packages today?