Git Product home page Git Product logo

laminas-component-installer's Introduction

Component Installer for Laminas and Mezzio Applications

Build Status Coverage Status

This repository contains the Composer plugin class Laminas\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 laminas/laminas-component-installer

Per project installation

To install the utility for use with a specific project already managed by composer:

$ composer require laminas/laminas-component-installer

Writing packages that utilize the installer

Packages can opt-in to the workflow from laminas-component-installer by defining one or more of the following keys under the extra.laminas configuration in their composer.json file:

"extra": {
  "laminas": {
    "component": "Component\\Namespace",
    "config-provider": "Classname\\For\\ConfigProvider",
    "module": "Module\\Namespace"
  }
}
  • A component is for use specifically with laminas-mvc + laminas-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 laminas-mvc + laminas-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 mezzio-config-manager or laminas-config-aggregator (which may or may not be Mezzio 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": {
  "laminas": {
    "component-whitelist": [
      "mezzio/mezzio",
      "mezzio/mezzio-helpers"
    ]
  }
}

This configuration must be made at the root package level (the package consuming configuration providing packages).

laminas-component-installer's People

Contributors

eimanavicius avatar froschdesign avatar geerteltink avatar koopzington avatar malinink avatar michalbundyra avatar slayerbirden avatar stefanotorresi avatar tylkomat avatar weierophinney avatar xerkus avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.