madewithlove / definitions
符合服务提供者容器规范的服务提供者仓库
0.3.2
2017-03-18 11:28 UTC
Requires
- php: >=5.6.0
- container-interop/service-provider: dev-master
Requires (Dev)
- illuminate/database: ^5.4
- illuminate/filesystem: ^5.4
- league/container: ^2.4
- league/event: ^2.1
- league/factory-muffin: ^2.1
- league/flysystem: ^1.0
- league/route: ^2.0
- league/tactician: ^1.0
- madewithlove/php-cs-fixer-config: ^1.2
- maximebf/debugbar: ^1.13
- mockery/mockery: ^0.9.9
- monolog/monolog: ^1.22
- phpunit/phpunit: ^6.0
- relay/relay: ^1.1
- symfony/console: ^3.2
- twig/twig: ^2.2
- zendframework/zend-diactoros: ^1.3
This package is not auto-updated.
Last update: 2024-09-14 18:47:37 UTC
README
符合[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
贡献
请参阅CONTRIBUTING和CONDUCT以获取详细信息。
安全
如果您发现任何与安全相关的问题,请通过电子邮件heroes@madewithlove.be联系,而不是使用问题跟踪器。
鸣谢
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。