Weave Code
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

Composer Merge Plugin Laravel Package

wikimedia/composer-merge-plugin

Composer plugin that merges multiple composer.json files at runtime. Define extra include patterns (e.g., composer.local.json, extensions/*/composer.json) to combine dependencies and settings into the main config for installs and autoload generation.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit: The package remains well-aligned with Laravel’s modular architecture (e.g., packages/ or monorepo structures), but the PHP 7.2+ requirement may necessitate project-wide compatibility reviews, especially for legacy systems. The Composer 2.0 support and HHVM deprecation are non-breaking but signal a shift toward modern PHP ecosystems. The updated constraints (PHP 7.2+, Composer 1.1+) could impact shared hosting or older Laravel 5.x projects.

Integration feasibility: High for new Laravel 8/9/10 projects or those already on PHP 7.2+. Existing projects must audit:

  • PHP version (7.2+ required).
  • Composer version (1.1+ recommended, 2.0+ supported).
  • Dependencies (e.g., packages requiring PHP <7.2).
  • CI/CD pipelines (HHVM removal may simplify testing matrices).

Technical risk:

  • Breaking risk: Low for greenfield projects; medium for legacy systems due to PHP/Composer constraints.
  • Dependency conflicts: Potential if other packages enforce PHP <7.2 or Composer 1.x.
  • Performance: PHP 7.2+ may improve performance, but HHVM’s removal eliminates a niche optimization path.

Key questions:

  1. Does the target project use PHP <7.2 or Composer <1.1? If yes, what’s the upgrade path?
  2. Are there shared dependencies (e.g., packages, plugins) blocking PHP 7.2+ adoption?
  3. How will this affect CI/CD (e.g., HHVM test suites, Docker images)?
  4. Does the team have Composer 2.0 experience? If not, what training/gap analysis is needed?
  5. Are there third-party integrations (e.g., IDE tooling, debuggers) that may need updates?

Integration Approach

Stack fit:

  • Best fit: Laravel 8/9/10, PHP 7.4/8.x, Composer 2.x.
  • Workarounds needed: Projects on PHP 7.1 or older may require:
    • PHP version bump (e.g., via Docker, platform updates).
    • Composer 1.x (if 2.0 causes issues, though 1.1+ is now required).
  • Avoid: HHVM-based environments (explicitly dropped).

Migration path:

  1. Audit: Run composer why-not php:7.2 and composer why-not composer:2.0 to identify blockers.
  2. Upgrade:
    • Bump PHP version in php.ini/Dockerfile.
    • Update composer.json to enforce "config": { "platform": { "php": "7.2" } } during migration.
    • Run composer update (may require dependency resolution adjustments).
  3. Test: Validate with composer validate and PHPUnit.
  4. Deprecate: Remove HHVM-specific configs (e.g., .hhvm/ files, CI jobs).

Compatibility:

  • Laravel: Fully compatible with LTS versions (8.x, 9.x, 10.x).
  • PHP Extensions: Ensure json, mbstring, and openssl (common Laravel dependencies) are available in PHP 7.2+.
  • Tooling: Update PHPStan, Psalm, or Xdebug to versions supporting PHP 7.2+.

Sequencing:

  1. Non-production: Test in staging first (especially if using shared hosting).
  2. Feature flags: Consider feature flags for gradual rollout if the package is optional.
  3. Rollback plan: Document steps to revert PHP/Composer versions if issues arise.

Operational Impact

Maintenance:

  • Pros:
    • Reduced technical debt (PHP 7.2+ drops EOL PHP 5.x).
    • Composer 2.0 improves dependency resolution speed.
  • Cons:
    • Support burden: Older PHP versions may require extended support for legacy code.
    • Dependency updates: More frequent PHP extension updates (e.g., libxml, gd).

Support:

  • Team skills: Upskill on PHP 7.2+ features (e.g., typed properties, nullsafe operator).
  • Vendor lock-in: Minimal, but HHVM removal eliminates a legacy optimization path.
  • Community: Active Laravel ecosystem support for PHP 7.2+; HHVM community is now irrelevant.

Scaling:

  • Performance: PHP 7.2+ may reduce memory usage and improve request handling.
  • Hosting: Cloud providers (AWS, Heroku) support PHP 7.2+ natively; shared hosting may require upgrades.
  • Database: No direct impact, but PHP 7.2+ may improve PDO performance.

Failure modes:

  • Upgrade failures: Composer 2.0 may break autoload in complex projects (mitigate with --dry-run).
  • Runtime errors: PHP 7.2+ strict typing may expose deprecated code (e.g., @ error suppression).
  • CI flakiness: HHVM removal may break legacy test matrices (audit CI configs early).

Ramp-up:

  • Onboarding: Document PHP/Composer version requirements in CONTRIBUTING.md.
  • Training: Host a workshop on PHP 7.2+ features (e.g., scalar type hints, spaceship operator).
  • Checklist:
    • PHP version bumped and tested.
    • Composer 2.0 compatibility verified.
    • HHVM configs removed from repo.
    • Team acknowledges PHP 7.2+ deprecation timelines (e.g., Laravel 10 drops PHP 7.4 support in 2024).
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.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
milesj/emojibase
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport