laminas-dependency-plugin
This Composer plugin, when enabled in a project, intercepts requests to install packages from the zendframework and zfcampus vendors, and will replace them with the equivalents from the Laminas Project.
Installation
$ composer require laminas/laminas-dependency-plugin
Composer version
This package only works with Composer versions prior to 2.3; we recommend using the 2.2 LTS version. The Composer download documentation details how to select the 2.2 LTS:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php --2.2
If you are on a later version of Composer, you can choose to rollback to the LTS version using the self-update command:
composer self-update --2.2
Removal
If you no longer want to use the plugin (e.g., if no packages you use or plan to use will have dependencies on legacy Zend Framework packages):
$ composer remove laminas/laminas-dependency-plugin
What it does
zendframework and zfcampus packages listed in the composer.json
For zendframework and zfcampus packages listed in the composer.json file, the
plugin will identify the equivalent package from the Laminas Project, and
slip-stream it in during when the user performs either a composer install or
composer update.
When this occurs, composer show will list the package installed. However, the
composer.json will still list the zendframework or zfcampus package(s)
originally present. To correct this situation, we recommend using the
laminas-transfer migrate tooling.
If you do not want this behavior, use the --no-plugins option when running
your composer install or composer update operations.
zendframework and zfcampus packages requested via require operations
When a user runs composer require and lists a zendframework or zfcampus
package, the plugin will replace the package requested with the Laminas Project
equivalent. The replacement package will both be installed as well as added to
the composer.json.
If you do not want this behavior, use the --no-plugins option when running
your composer require operation.
zendframework and zfcampus packages installed as dependencies of other packages
When a third-party package has dependencies on zendframework or zfcampus packages, the plugin will detect request for these packages and replace them with the Laminas Project equivalents prior to installation. Since these use the laminas-zendframework-bridge, all code should continue to work without issues.
If you do not want this behavior, use the --no-plugins option when running
your composer require operation.