Generates a list of Zend Framework 2 components used by a project.
In your composer.json
file instead of using "zendframework/zendframework" : "2.5.*"
and so requiring the whole framework,
use this script to get a list of used components, and require only those. Better yet, specify your composer file and the
script will replace your "zendframework/zendframework" : "2.5.*"
with the components used by your application.
For more info on why you should do this in your module/application read this blog post.
- Add this package to your
composer.json
file, in therequire-dev
section
{
"require-dev": {
"robertboloc/zf2-components-list-generator": "dev-master"
}
}
- Run
composer update
This will install the script into vendor/bin/zf2_components_list_generator.php
Execute the CLI script providing some/all of the following options :
--help | -h Get usage information.
--project | -p Path of the project to be scanned.
--composer | -c Path to the composer.json file to be updated. If not specified the output will be printed to the standard output.
--version | -v Use a specific version for the output.
For example calling the script using only the -p
option:
php vendor/bin/zf2_components_list_generator.php -p /projects/MyProject/
Will output something like:
Replace "zendframework/zendframework" in your composer.json file with :
"zendframework/zend-mvc": "2.5.*",
"zendframework/zend-form": "2.5.*",
"zendframework/zend-db": "2.5.*",
"zendframework/zend-inputfilter": "2.5.*",
"zendframework/zend-view": "2.5.*",
"zendframework/zend-servicemanager": "2.5.*",
"zendframework/zend-loader": "2.5.*",
"zendframework/zend-stdlib": "2.5.*"
You can copy and paste this information directly into your composer file.
If the -c
option was used, the composer file will be updated automatically and the message will be :
/projects/MyProject/composer.json updated
- Detect canonicalized components