2017 © Pedro Peláez
 

library slim-container-sm

A Slim framework container wrapping a ZF2 ServiceManager

image

acelaya/slim-container-sm

A Slim framework container wrapping a ZF2 ServiceManager

  • Sunday, January 24, 2016
  • by acelaya
  • Repository
  • 2 Watchers
  • 3 Stars
  • 337 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 1 Open issues
  • 8 Versions
  • 1 % Grown

The README.md

Slim Container - ServiceManager

Build Status Code Coverage Scrutinizer Code Quality Latest Stable Version Total Downloads License, (*1)

A Slim framework v2 container wrapping a Zend ServiceManager v3 so that services can be fetched from it., (*2)

Current stable release depends on version 3 of the ServiceManager. If you need to use the version 2, install v1 of this component., (*3)

Installation

Install it with composer. Just run this., (*4)

composer require acelaya/slim-container-sm

Usage

This library provides a simple class, the Acelaya\SlimContainerSm\Container which extends Slim\Helper\Set and wraps an instance of a ServiceManager (which can be injected on it or lazy loaded)., (*5)

By replacing Slim's container object by this one you can make Slim framework to fetch services from the ServiceManager, which is much more advanced and configurable., (*6)

use Acelaya\SlimContainerSm\Container;
use Slim\Slim;
use Vendor\ComplexClass;
use Vendor\MyAbstractFactory;
use Zend\ServiceManager\Factory\InvokableFactory;
use Zend\ServiceManager\ServiceManager;

// Create a ServiceManager that is going to be used by the application and add some services to it
$sm = new ServiceManager([
    'factories' => [
        'complex_service' => function ($sm) {
            // Do stuff...

            return new ComplexClass();
        },
        'foo_invokable' => InvokableFactory::class,
    ],
    'abstract_factories' => [
        MyAbstractFactory::class
    ],
    'aliases' => [
        'foo' => 'foo_invokable'
    ]
]);
// Inject the ServiceManager in the new container
$container = new Container($sm);

// Create Slim object which will initialize its container
$app = new Slim();
// Inject default Slim services into our container
$container->consumeSlimContainer($app->container);
// Override Slim's container with the new one
$app->container = $container;

Once this is done, Slim will continue working with the new container as its own, and you can create more complex services using the ServiceManager., (*7)

This library is very useful with rka-slim-controller and slimcontroller, both of them libraries that allow to create controllers in Slim framework as a service. In combination with this, you will be able to register Controllers in a ServiceManager., (*8)

Invalid methods

Because of the way the ServiceManager works, there are methods in Slim\Helper\Set that can't be used. These are the methods all, keys, count and getIterator. Those methods will throw a Acelaya\SlimContainerSm\Exception\BadMethodCallException. This makes the Acelaya\SlimContainerSm\Container not iterable., (*9)

The Versions

24/01 2016

dev-master

9999999-dev

A Slim framework container wrapping a ZF2 ServiceManager

  Sources   Download

MIT

The Requires

 

The Development Requires

dependency injection zf2 zend framework slim dic

24/01 2016

v2.0.0

2.0.0.0

A Slim framework container wrapping a ZF2 ServiceManager

  Sources   Download

MIT

The Requires

 

The Development Requires

dependency injection zf2 zend framework slim dic

24/01 2016

dev-develop

dev-develop

A Slim framework container wrapping a ZF2 ServiceManager

  Sources   Download

MIT

The Requires

 

The Development Requires

dependency injection zf2 zend framework slim dic

26/11 2015

v1.0.0

1.0.0.0

A Slim framework container wrapping a ZF2 ServiceManager

  Sources   Download

MIT

The Requires

 

The Development Requires

dependency injection zf2 zend framework slim dic

20/03 2015

v0.1.3

0.1.3.0

A Slim framework container wrapping a ZF2 ServiceManager

  Sources   Download

MIT

The Requires

 

The Development Requires

dependency injection zf2 zend framework slim dic

18/01 2015

v0.1.2

0.1.2.0

A Slim framework container wrapping a ZF2 ServiceManager

  Sources   Download

MIT

The Requires

 

The Development Requires

dependency injection zf2 zend framework slim dic

18/01 2015

v0.1.1

0.1.1.0

A Slim framework container wrapping a ZF2 ServiceManager

  Sources   Download

MIT

The Requires

 

The Development Requires

dependency injection zf2 zend framework slim dic

18/01 2015

v0.1.0

0.1.0.0

A Slim framework container wrapping a ZF2 ServiceManager

  Sources   Download

MIT

The Requires

 

The Development Requires

dependency injection zf2 zend framework slim dic