frostiede/composer-dependency-list-bundle
A Symfony bundle that exposes your project's installed Composer dependencies as a structured list, making it easy to inspect package names and versions from within your application. Useful for diagnostics, admin dashboards, or dependency reporting.
composer.lock / vendor/composer/installed.json) and handing back name, version, description, license, and homepage per dependency. That is a 1–2 day internal build. The decision this supports is "do we buy a dependency to render an attribution page, or write 80 lines of JSON parsing?"/about/licenses page, an admin-only dependency report, or a CSV attachment to a security questionnaire.frostieDE/...-bundle, registered via the Symfony kernel). In a Laravel codebase it is not drop-in; you would be pulling in a bundle you cannot boot, or cherry-picking its classes. That alone usually flips the decision to build.Consider it when all of these hold:
Look elsewhere (or build) when:
composer.lock directly or use a maintained Composer-adjacent library.composer audit or a security-checker, a different product.To executives: There is a small, MIT-licensed PHP component that lists every third-party library we ship, with version and license — the raw material for an attribution page and for answering customer security questionnaires. Cost is near zero, but so is adoption: no stars, no downstream users, one maintainer. Recommendation is not to adopt it as a dependency. Recommendation is a timeboxed spike (≤2 days) to read it as a reference and build the equivalent internally against composer.lock. That gives us the compliance capability, removes a single-maintainer supply-chain item from our tree, and keeps the output under our own control.
To engineering: It is a thin Symfony bundle wrapping Composer's installed.json. Integration in Laravel is non-trivial, the surface is small enough to reimplement, and we get to own the data shape (which we will need to change for SBOM export and CI license checks anyway). Use it as a spec, not a dependency. If we do adopt, pin the version, isolate the call behind an interface, and treat parsing failures as non-fatal.
How can I help you explore Laravel packages today?