madewithlove/definitions

符合服务提供者容器规范的服务提供者仓库

0.3.2 2017-03-18 11:28 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:47:37 UTC


README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

符合[service-providers]规范容器的通用服务提供者仓库

安装

通过Composer

$ composer require madewithlove/service-providers

此仓库不包含任何第三方包,您需要自行安装。例如,如果您需要FlysystemServiceProvider,则需要与该包一起安装Flysystem。

使用方法

服务提供者

如果您使用的容器已经与service-provider兼容,则可像通常一样注册。

否则,您可以使用装饰器或桥接器,您可以在Packagist上找到一些,此包也附带了一些,例如用于league/container的。

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);

对于具有配置的提供者,您可以通过构造函数参数传递它。请参阅提供者的签名以了解它们接受哪些选项。

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

实用工具

此包还附带了一些编写自己的服务提供者的实用工具

别名:容器的现有值的一个别名

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

参数:要存储在容器中的普通值

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

ParametersServiceProvider:一个空白服务提供者,可快速在容器中设置多个值

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

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

PrefixedProvider:一个装饰器,用于将提供者的服务前缀为给定的字符串

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

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

可用的服务提供者

├── 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

请参阅每个构造函数参数以了解它们接受的选项。欢迎贡献!

变更日志

请参阅CHANGELOG以获取有关最近更改的更多信息。

测试

$ composer test

贡献

请参阅CONTRIBUTINGCONDUCT以获取详细信息。

安全

如果您发现任何与安全相关的问题,请通过电子邮件heroes@madewithlove.be联系,而不是使用问题跟踪器。

鸣谢

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。