eckinox/installer-plugin
Composer plugin that installs eckinox-metapackage packages by replicating a package’s replicate/ directory into your project, merging folders and overwriting same-named files. Supports custom handler classes to control behavior for new and existing files.
composer-plugin-api and react/promise for breaking changes.replicate/ files in a vendor/ subdirectory for recovery.HANDLERS.md file to onboard new developers.Composer\Test\MockIO to catch regressions.config:clear runs post-install via composer.json scripts.vendor:publish already manages.composer install --verbose to trace replication failures.HandlerInterface to log actions (e.g., postFileCreationCallback calls) to storage/logs/composer-plugin.log.umask in handlers or CI chmod steps.extra.class in composer.json matches the namespace.replicate/ directory exists in the metapackage root.| Issue Type | Owner | Resolution Path |
|---|---|---|
| Handler logic errors | Backend Engineer | Debug with MockIO, update handler tests |
| File overwrite conflicts | TPM/Product | Document in CONTRIBUTING.md, use handlers to merge |
| Composer plugin failures | DevOps | Check Composer version, fork if needed |
| Laravel integration | Laravel Lead | Add to post-install-cmd scripts |
replicate/ directories: Test with 1000+ files to validate Composer’s file system performance.postFileCreationCallback (e.g., sync HTTP calls).eckinox-metapackage types like:
company/metapackage-dev (with docker-compose.yml)company/metapackage-prod (with supervisor.conf)composer.json to avoid unintended updates.replicate/.replicate/: If a metapackage’s replicate/ is missing, Composer falls back to partial install (v1.2.2). Mitigation: Validate replicate/ exists in CI.handleExistingFile may silently skip files. Mitigation: Wrap handler logic in try-catch and log errors.config/ without config:clear causes runtime errors. Mitigation: Enforce post-install-cmd scripts.chmod -R 755 in CI.app/Http/Controllers/ may overwrite user code. Mitigation: Exclude directories in handlers.autoload-dev in metapackage’s composer.json.post-install-cmd works).extra.class).composer require --dev eckinox/installer-plugin and composer dump-autoload.replicate/ directory and handler template.replicate/sample.env.sample.env to .env..env appears.README.md).HandlerInterface stubs.- name: Install metapackages
run: composer require company/metapackage-dev --dev
vendor:publish).composer.json for eckinox-metapackage type").How can I help you explore Laravel packages today?