2017 © Pedro Pelรกez
 

library service-providers

A repository of universal service providers for service-providers compliant containers

image

madewithlove/service-providers

A repository of universal service providers for service-providers compliant containers

  • Saturday, March 18, 2017
  • by Anahkiasen
  • Repository
  • 1 Watchers
  • 2 Stars
  • 41 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 8 Versions
  • 0 % Grown

The README.md

Madewithlove Service Providers

![Latest Version on Packagist][ico-version] Software License Build Status ![Coverage Status][ico-scrutinizer] Quality Score ![Total Downloads][ico-downloads], (*1)

A repository of universal service providers for [service-providers] compliant containers, (*2)

Install

Via Composer, (*3)

``` bash $ composer require madewithlove/service-providers, (*4)


This repository **does not** ship with any third party package, you will need to install them yourself. If per example you need the `FlysystemServiceProvider` you would install Flysystem alongside this package. ## Usage ### Service providers If the container you're using is already compatible with [service-provider] then register it like you simply would normally. Otherwise you can use a decorator or bridge, you can find some on Packagist, and this package ships with some as well, per example for [league/container]: ```php use League\Flysystem\FilesystemInterface; use League\League\Container; use Madewithlove\ServiceProviders\Bridges\LeagueContainerDecorator; use Madewithlove\ServiceProviders\Filesystem\FlysystemServiceProvider; $container = new LeagueContainerDecorator(new Container()); $container->addServiceProvider(new FlysystemServiceProvider(...))); $filesystem = $container->get(FilesystemInterface::class);

For providers with configuration, you can pass it as constructor argument. See the provider's signature for what options they take:, (*5)

$provider = new EloquentServiceProvider([
    'local' => [
        'driver' => 'sqlite',
        'etc' => 'etc,
    ],
    'production' => [
        'driver' => 'mysql',
        'etc' => 'etc,
    ],
]);

Utilities

This package also ships with some utilities to write your own service providers:, (*6)

Alias: An alias to an existing value in the container:, (*7)

public function getServices()
{
    return ['my_alias' => new Alias('to_something_else')];
}

Parameter: A plain value to store in the container:, (*8)

public function getServices()
{
    return ['views_path' => new Parameter(__DIR__.'/views)];
}

ParametersServiceProvider: A blank service provider to quickly set multiple values in the container:, (*9)

new ParametersServiceProvider([
    'foo' => 'bar',
    'bar' => 'baz',
]);

$container->get('foo'); // (string) "bar"

PrefixedProvider: A decorator to prefix a provider's services with a given string:, (*10)

new PrefixedProvider('config', new ParametersServiceProvider([
    'foo' => 'bar',
]));

$container->get('config.foo'); // (string) "bar"

Available service providers

โ”œโ”€โ”€ Bridges
โ”‚ย ย  โ””โ”€โ”€ LeagueContainerDecorator.php
โ”œโ”€โ”€ CommandBus
โ”‚ย ย  โ””โ”€โ”€ TacticianServiceProvider.php
โ”œโ”€โ”€ Console
โ”‚ย ย  โ””โ”€โ”€ SymfonyConsoleServiceProvider.php
โ”œโ”€โ”€ Database
โ”‚ย ย  โ”œโ”€โ”€ EloquentServiceProvider.php
โ”‚ย ย  โ””โ”€โ”€ FactoryMuffinServiceProvider.php
โ”œโ”€โ”€ Development
โ”‚ย ย  โ”œโ”€โ”€ DebugbarServiceProvider.php
โ”‚ย ย  โ””โ”€โ”€ MonologServiceProvider.php
โ”œโ”€โ”€ Events
โ”‚ย ย  โ””โ”€โ”€ LeagueEventsServiceProvider.php
โ”œโ”€โ”€ Filesystem
โ”‚ย ย  โ””โ”€โ”€ FlysystemServiceProvider.php
โ”œโ”€โ”€ Http
โ”‚ย ย  โ”œโ”€โ”€ LeagueRouteServiceProvider.php
โ”‚ย ย  โ”œโ”€โ”€ RelayServiceProvider.php
โ”‚ย ย  โ””โ”€โ”€ ZendDiactorosServiceProvider.php
โ”œโ”€โ”€ Templating
โ”‚ย ย  โ””โ”€โ”€ TwigServiceProvider.php
โ””โ”€โ”€ Utilities
    โ”œโ”€โ”€ Alias.php
    โ”œโ”€โ”€ Parameter.php
    โ”œโ”€โ”€ ParametersServiceProvider.php
    โ””โ”€โ”€ PrefixedProvider.php

See the constructor arguments of each for the options they take. Contributions welcome!, (*11)

Change log

Please see CHANGELOG for more information what has changed recently., (*12)

Testing

bash $ composer test, (*13)

Contributing

Please see CONTRIBUTING and CONDUCT for details., (*14)

Security

If you discover any security related issues, please email heroes@madewithlove.be instead of using the issue tracker., (*15)

Credits

License

The MIT License (MIT). Please see License File for more information., (*16)

The Versions