Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://zendframework.github.io/zend-component-installer/
Composer post-package-(un)install scripts for modules and components.
https://zendframework.github.io/zend-component-installer/
Last synced: 3 months ago
JSON representation
Composer post-package-(un)install scripts for modules and components.
- Host: GitHub
- URL: https://zendframework.github.io/zend-component-installer/
- Owner: zendframework
- License: bsd-3-clause
- Archived: true
- Created: 2015-12-17T15:18:15.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2020-01-28T20:19:55.000Z (almost 5 years ago)
- Last Synced: 2024-06-18T12:09:21.730Z (5 months ago)
- Language: PHP
- Homepage:
- Size: 2.08 MB
- Stars: 46
- Watchers: 22
- Forks: 20
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: docs/CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: docs/CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Component Installer for Zend Framework 3 and Expressive Applications
[![Build Status](https://secure.travis-ci.org/zendframework/zend-component-installer.svg?branch=master)](https://secure.travis-ci.org/zendframework/zend-component-installer)
[![Coverage Status](https://coveralls.io/repos/github/zendframework/zend-component-installer/badge.svg?branch=master)](https://coveralls.io/github/zendframework/zend-component-installer?branch=master)> ## Repository abandoned 2019-12-31
>
> This repository has moved to [laminas/laminas-component-installer](https://github.com/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:
```bash
$ composer global require zendframework/zend-component-installer
```## Per project installation
To install the utility for use with a specific project already managed by
composer:```bash
$ 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:```json
"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](https://github.com/mtymek/expressive-config-manager)
or [zend-config-aggregator](https://github.com/zendframework/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:```json
"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).