maksimovic / laminas-auradi-config
PSR-11 Aura.DI container configurator for Laminas and Mezzio applications. Drop-in replacement for the archived laminas/laminas-auradi-config with PHP 8.4 and 8.5 support.
Package info
github.com/maksimovic/laminas-auradi-config
pkg:composer/maksimovic/laminas-auradi-config
Requires
- php: ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0
- aura/di: ^4.2
Requires (Dev)
- laminas/laminas-coding-standard: ~2.5.0
- laminas/laminas-container-config-test: ^1.0.0
- phpunit/phpunit: ^10.5
- psalm/plugin-phpunit: ^0.18.3
- vimeo/psalm: ^5.17
Conflicts
Replaces
README
Drop-in replacement for the archived laminas/laminas-auradi-config, with added PHP 8.4 and 8.5 support.
This library provides utilities to configure a PSR-11 compatible Aura.Di container using laminas-servicemanager configuration.
Installation
Run the following to install this library:
$ composer require maksimovic/laminas-auradi-config
Configuration
To get a configured Aura.Di container, do the following:
<?php use Laminas\AuraDi\Config\Config; use Laminas\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 Mezzio delegators documentation for more details.
Please note, that the whole configuration is available in the
$containeronconfigkey:$config = $container->get('config');
Using with Mezzio
Replace the contents of config/container.php with the following:
<?php use Laminas\AuraDi\Config\Config; use Laminas\AuraDi\Config\ContainerFactory; $config = require __DIR__ . '/config.php'; $factory = new ContainerFactory(); return $factory(new Config($config));