Skip to content
This repository was archived by the owner on Jan 29, 2020. It is now read-only.

zendframework/zend-component-installer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

9c2331f · Jan 20, 2020
Nov 1, 2019
Mar 21, 2018
Sep 4, 2019
May 31, 2016
Feb 17, 2017
Sep 4, 2019
Sep 4, 2019
Sep 4, 2019
Nov 1, 2019
Sep 4, 2019
Jan 20, 2020
Sep 4, 2019
Sep 4, 2019
Oct 31, 2019
Nov 13, 2016
Mar 14, 2016

Component Installer for Zend Framework 3 and Expressive Applications

Build Status Coverage Status

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