chubbyphp/chubbyphp-laminas-config

Chubbyphp container adapter using laminas service manager configuration.

1.4.0 2023-11-27 20:36 UTC

This package is auto-updated.

Last update: 2024-11-10 20:21:26 UTC


README

CI Coverage Status Mutation testing badge Latest Stable Version Total Downloads Monthly Downloads

bugs code_smells coverage duplicated_lines_density ncloc sqale_rating alert_status reliability_rating security_rating sqale_index vulnerabilities

Description

Chubbyphp container adapter using laminas service manager configuration.

Requirements

Installation

Through Composer as chubbyphp/chubbyphp-laminas-config.

composer require chubbyphp/chubbyphp-laminas-config "^1.4"

Usage

<?php

declare(strict_types=1);

use Chubbyphp\Laminas\Config\Config;
use Chubbyphp\Laminas\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 $container on config key:

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

Using with Mezzio

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

<?php

declare(strict_types=1);

use Chubbyphp\Laminas\Config\Config;
use Chubbyphp\Laminas\Config\ContainerFactory;

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

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

Copyright

2024 Dominik Zogg