Aura.Di container configurator based on ZF ServiceManager configuration
Clone or download
Latest commit 9585f3f Apr 11, 2018

README.md

zend-auradi-config

Build Status Coverage Status

This library provides utilities to configure a PSR-11 compatible Aura.Di container using zend-servicemanager configuration.

Installation

Run the following to install this library:

$ composer require zendframework/zend-auradi-config

Configuration

To get a configured Aura.Di container, do the following:

<?php
use Zend\AuraDi\Config\Config;
use Zend\AuraDi\Config\ContainerFactory;

$factory = new ContainerFactory();

$container = $factory(
    new Config([
        'dependencies' => [
            'services'   => [],
            'invokables' => [],
            'factories'  => [],
            'aliases'    => [],
            'delegators' => [],
        ],
        // ... other configuration
    ])
);

The dependencies sub associative array can contain the following keys:

  • services: an associative array that maps a key to a specific service instance.
  • invokables: an associative array that map a key to a constructor-less service; i.e., for services that do not require arguments to the constructor. The key and service name usually are the same; if they are not, the key is treated as an alias.
  • factories: an associative array that maps a service name to a factory class name, or any callable. Factory classes must be instantiable without arguments, and callable once instantiated (i.e., implement the __invoke() method).
  • aliases: an associative array that maps an alias to a service name (or another alias).
  • delegators: an associative array that maps service names to lists of delegator factory keys, see the Expressive delegators documentation for more details.

Please note, that the whole configuration is available in the $container on config key:

$config = $container->get('config');

Using with Expressive

Replace the contents of config/container.php with the following:

<?php

use Zend\AuraDi\Config\Config;
use Zend\AuraDi\Config\ContainerFactory;

$config  = require __DIR__ . '/config.php';
$factory = new ContainerFactory();

return $factory(new Config($config));