decodelabs/slingshot
最新稳定版本:v0.3.5
Composer 安装命令:
composer require decodelabs/slingshot
包简介
Unified dependency injection invoker
README 文档
README
Unified dependency injection invoker
Slingshot provides a simple interface for invoking methods on objects with dependency injection.
Installation
This package requires PHP 8.4 or higher.
Install via Composer:
composer require decodelabs/slingshot
Usage
Use a Slingshot instance to invoke a function with dependency injection:
use DecodeLabs\Slingshot; $slingshot = new Slingshot( container: $container, // Psr\Container\ContainerInterface parameters: [ 'param1' => 'hello' ] ); function test( string $param1, string $param2 ) { return $param1 . ' '. $param2; } $output = $slingshot->invoke(test(...), [ 'param2' => 'world' ]); // hello world
Or instantiate an object with dependency injection:
use DecodeLabs\Harvest; class Test { public function __construct( // Fetch the Harvest service (example) from container Harvest $param1, string $param2 ) { // ... } } $testObect = $slingshot->instantiate(Test::class, [ 'param2' => 'value' ]);
Objects can be added to Slingshot by type for reference matching:
$object = new Test(...); $slingshot->addType($object); $slingshot->invoke(function(Test $test) { // ... });
Licensing
Slingshot is licensed under the MIT License. See LICENSE for the full license text.
统计信息
- 总下载量: 18.17k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 14
- 推荐数: 1
其他信息
- 授权协议: MIT
- 更新时间: 2023-11-10