Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Composed Laravel Package

joshdifabio/composed

Composed is a Composer plugin for projects split across multiple composer.json files. It merges their dependency requirements into a single graph, so you can install and autoload packages from separate directories without juggling each manifest by hand.

Deep Wiki
Context7

Technical Evaluation

  • Architecture fit: joshdifabio/composed is a framework-agnostic PHP utility, not a Laravel package. Its value is narrow: reading composer.json, lock/installed metadata, and dependency configuration at runtime. That can fit diagnostic tooling, internal admin screens, plugin/package discovery, or environment introspection, but it is not a foundational dependency for a Laravel application. Business logic should not depend directly on parsed Composer metadata.
  • Integration feasibility: Installation is likely straightforward via Composer if the package’s legacy PHP/Composer constraints are compatible with the target Laravel version. However, the package’s last release was 2016-02-24, predating modern Composer 2 behavior and PHP 8.x. Integration must be proven in a spike before adoption. There is no evidence of a Laravel service provider, configuration surface, or modern framework integration, so wrapping it behind an application-owned adapter is mandatory.
  • Technical risk: High. The package appears unmaintained, has only 53 stars, and the repository is unknown in the supplied metadata, which weakens provenance and support confidence. It likely depends on Composer file formats and internal assumptions that have changed since 2016, especially vendor/composer/installed.json and Composer 2 APIs. Runtime file parsing adds failure modes around missing composer.json, production builds that omit metadata, file permissions, malformed JSON, path repositories, aliases, and optimized deployments. Exposing parsed dependency data through HTTP could also leak package inventory or version information.
  • Key questions: What exact runtime decision requires Composer metadata? Can it be replaced by Composer\InstalledVersions, composer.lock inspection at build time, or Laravel’s package manifest? Which PHP, Laravel, and Composer versions must be supported? Does the package work with Composer 2 installed metadata? Will composer.json and composer.lock exist in production? Is the repository available for audit and patching? Does it resolve transitive dependencies, or only root configuration? What happens with path repositories, aliases, plugins, and missing files? Can results be cached and treated as read-only?
  • TPM recommendation: Do not adopt as a production-critical dependency without a bounded spike and a replacement/fallback plan. If the use case is internal diagnostics or build-time inspection, evaluate it behind an adapter. For application runtime package/version discovery in modern Laravel, prefer Composer 2’s Composer\InstalledVersions or deploy-time generated metadata.

Integration Approach

  • Stack fit: Low-to-moderate fit for Laravel. The package can be installed in a Laravel codebase, but it does not align with Laravel conventions and should be isolated to a small infrastructure layer. Best-fit use cases are CLI commands, deployment diagnostics, internal admin tooling, or package inventory reports. Poor fit for request-hot paths, customer-facing features, or core domain logic.
  • Migration path: Start with a time-boxed technical spike on the exact target Laravel/PHP/Composer matrix. Add the dependency with an exact version constraint, then build an application-owned ComposerMetadataReader interface and implementation. If the package fails on Composer 2 or PHP 8, either fork and patch it under MIT or replace it with Composer\InstalledVersions plus targeted composer.lock parsing. Keep a fallback path so the application does not depend on the package’s parser internals.
  • Compatibility: Validate against the actual deployment artifact, not only a local checkout. Test with composer install --no-dev, optimized autoloading, missing composer.json, Composer 2 installed metadata, PHP 8.x deprecations, and Laravel Octane/long-running workers if applicable. Confirm whether the package reads root composer.json, lock files, installed metadata, or all three. Pin the version and commit the lockfile.
  • Sequencing: First confirm the business need and alternatives. Second run a compatibility spike with representative dependency graphs. Third implement an adapter, caching, and failure handling. Fourth pilot in CLI/admin-only scope. Fifth decide whether to productionize, fork, or replace. Do not begin with direct calls from controllers, jobs, or domain services. If adopted, register the adapter as a singleton and cache parsed metadata per deployment or process lifetime.
  • Laravel integration details: Expect manual binding rather than package auto-discovery. Avoid publishing configuration unless a fork adds it. Keep parsing out of middleware and normal HTTP flows. If metadata is needed at runtime, generate a static manifest during deployment and read that instead of parsing Composer files on every request.

Operational Impact

  • Maintenance: High relative to the value delivered. An abandoned 2016 package creates ownership burden: PHP deprecations, Composer schema changes, security review, and potential vendor forks all become internal responsibilities. MIT licensing permits a fork, but the team must own tests, patches, and release management.
  • Support: Weak. With 53 stars, no visible active repository in the supplied metadata, and no recent releases, external support is effectively unavailable. Internal documentation and an owner must be assigned before production use. Vendor escalation is not a realistic option.
  • Scaling: Parsing files at runtime does not scale well if invoked per request. Cache parsed results at deploy time, in application cache, or as a static manifest. The package is read-only and low-memory, but filesystem I/O, JSON decoding, and dependency graph traversal can become noticeable under high request volume. Avoid multi-tenant or per-user dynamic parsing.
  • Failure modes: Missing or relocated composer.json/composer.lock, absent vendor/composer/installed.json, permission errors, malformed JSON, unsupported Composer 2 formats, path repositories, aliases, and package metadata changes can cause exceptions or incorrect results. Production builds may intentionally exclude source metadata. Fail closed for business-critical decisions and degrade gracefully for diagnostics. Do not expose raw dependency inventories publicly.
  • Ramp-up: The API surface is likely small, so a PHP developer can prototype quickly. The harder ramp-up is understanding Composer internals and the package’s legacy assumptions. Estimate a 1–3 day feasibility spike, then 1–2 weeks of hardening if used beyond internal tooling. Ongoing ownership is low-effort only if isolated and cached; otherwise it becomes a persistent maintenance and reliability tax.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels
wazza/laravel-db-encryption
hokny/laravel-generator
vonsogt/backup
jengo/queues
jeremykenedy/laravel-observability
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums