smorken / support
v10.3.0
2024-08-08 19:52 UTC
Requires
- php: ^8.1
- illuminate/support: ^9.0|^10.0|^11.0
Requires (Dev)
- illuminate/routing: ^9.0|^10.0|^11.0
- laravel/framework: ^9.0|^10.0|^11.0
- mockery/mockery: ^1.0
- phpstan/phpstan: ^1.11.10
- phpunit/phpunit: ^10.0|^11.0
- smorken/docker: *
This package is auto-updated.
Last update: 2024-09-08 20:02:41 UTC
README
许可证
本软件是开源软件,根据 MIT 许可证 发布。
Laravel 框架是开源软件,根据 MIT 许可证 发布。
安装
服务提供者应自动注册。如果没有,您可以手动将 Smorken\Support\ServiceProvider::class
添加到 config/app.php
文件的 providers 部分。
绑定器
绑定器是一种从配置数组自动连接依赖的方法。我主要用它来连接存储到模型。
配置数组包含一个 concrete
键和一个 contract
键。concrete
键可以包含项目中对一个接口所有可能的实现。而 contract
键包含要使用的实际实现。
简单的依赖示例
$config = [
'concrete' => [
ImplOne::class => [
'foo' => 'foo impl one', //parameters for ImplOne
],
],
'contract' => [
ContractOne::class => ImplOne::class,
],
];
$binder->bindAll($config);
通过反射创建依赖
$config = [
'concrete' => [
ImplOne::class => [
'foo' => 'foo impl one',
],
ImplTwo::class => [
'foo' => 'foo impl two', //param one
'bar' => [ //param two (reflection)
'impl' => ImplBar::class,
'params' => [
'bar' => 'bar from impl bar in impl two',
],
],
],
],
'contract' => [
ContractOne::class => ImplTwo::class,
],
];
$binder->bindAll($config);
从容器创建依赖
$config = [
'concrete' => [
ImplBar::class => [
'bar' => 'bar from prebound impl bar in impl two',
],
ImplTwo::class => [
'foo' => 'foo impl two prebound', //param one
'bar' => [ //param two (container)
'bound' => ContractBar::class,
],
],
],
'contract' => [
ContractBar::class => ImplBar::class,
ContractOne::class => ImplTwo::class,
],
];
$binder->bindAll($config);