Skip to content
Composer post-package-(un)install scripts for modules and components.
PHP
Branch: master
Clone or download
webimpress Merge pull request #59 from webimpress/hotfix/composer-required-lower…
…case-package-name-vfsstream

Lowercase mikey179/vfsstream in composer.json
Latest commit 99e739f Aug 9, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs Use ZF green for jumbotron color May 23, 2018
src Merge pull request #53 from webimpress/improvement/import-internals Mar 21, 2018
test Merge pull request #53 from webimpress/improvement/import-internals Mar 21, 2018
.coveralls.yml add coveralls config May 31, 2016
.docheader QA Tools update Feb 17, 2017
.gitattributes Updated .gitattributes Nov 1, 2017
.gitignore Updated .gitignore Nov 1, 2017
.travis.yml Fix env var in Travis CI configuration - CS_CHECK Aug 6, 2019
.zf-mkdoc-theme-landing Updates documentation landing page May 22, 2018
CHANGELOG.md Bumped version Mar 21, 2018
LICENSE.md Update copyright date Feb 8, 2018
README.md Adds documentation for #52 Feb 8, 2018
composer.json Lowercase mikey179/vfsstream in composer.json Aug 6, 2019
composer.lock
mkdocs.yml Updates documentation landing page May 22, 2018
phpcs.xml add/update phpcs.xml Nov 13, 2016
phpunit.xml.dist Re-implement ComponentInstaller as a composer plugin Mar 14, 2016

README.md

Component Installer for Zend Framework 3 Applications

Build Status Coverage Status

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).

You can’t perform that action at this time.