Generate a list of Zend Framework 2 components used by a library

v1.0.0 2016-04-26 20:00 UTC

This package is not auto-updated.

Last update: 2020-10-16 19:26:54 UTC


Build Status Total Downloads License

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.

Table of contents


  1. Add this package to your composer.json file, in the require-dev section
        "require-dev": {
            "robertboloc/zf2-components-list-generator": "dev-master"
  1. 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