zendframework / zend-component-installer
Composer plugin for injecting modules and configuration providers into application configuration
Installs: 2 250 174
Dependents: 70
Suggesters: 0
Security: 0
Stars: 45
Watchers: 25
Forks: 16
Open Issues: 4
Type:composer-plugin
Requires
- php: ^7.1
- composer-plugin-api: ^1.0
Requires (Dev)
- composer/composer: ^1.5.2
- malukenho/docheader: ^0.1.6
- mikey179/vfsstream: ^1.6.7
- phpunit/phpunit: ^7.5.15 || ^8.3.4
- zendframework/zend-coding-standard: ~1.0.0
README
Repository abandoned 2019-12-31
This repository has moved to laminas/laminas-component-installer.
This repository contains the Composer plugin class Zend\ComponentInstaller\ComponentInstaller
,
which provides Composer event hooks for the events:
- post-package-install
- post-package-uninstall
Via Composer global install
To install the utility for use with all projects you use:
$ composer global require zendframework/zend-component-installer
Per project installation
To install the utility for use with a specific project already managed by composer:
$ composer require zendframework/zend-component-installer
Writing packages that utilize the installer
Packages can opt-in to the workflow from zend-component-installer by defining
one or more of the following keys under the extra.zf
configuration in their
composer.json
file:
"extra": { "zf": { "component": "Component\\Namespace", "config-provider": "Classname\\For\\ConfigProvider", "module": "Module\\Namespace" } }
-
A component is for use specifically with zend-mvc + zend-modulemanager; a
Module
class must be present in the namespace associated with it. The setting indicates a low-level component that should be injected to the top of the modules list of one of:config/application.config.php
config/modules.config.php
config/development.config.php
-
A module is for use specifically with zend-mvc + zend-modulemanager; a
Module
class must be present in the namespace associated with it. The setting indicates a userland or third-party module that should be injected to the bottom of the modules list of one of:config/application.config.php
config/modules.config.php
config/development.config.php
-
A config-provider is for use with applications that utilize expressive-config-manager or zend-config-aggregator (which may or may not be Expressive applications). The class listed must be an invokable that returns an array of configuration, and will be injected at the top of:
config/config.php
Whitelisting packages to install automatically
At the project level, you can mark packages that expose configuration providers
and modules that you want to automatically inject via the component-whitelist
key:
"extra": { "zf": { "component-whitelist": [ "zendframework/zend-expressive", "zendframework/zend-expressive-helpers" ] } }
This configuration must be made at the root package level (the package consuming configuration providing packages).