tomrf/autowire

从PSR-11容器中进行自动装配依赖注入

0.1.2 2023-08-02 13:19 UTC

This package is auto-updated.

Last update: 2024-08-31 00:26:47 UTC


README

PHP Version Require Latest Stable Version License

A simple PHP library that facilitates autowired dependency injection by fetching class constructor dependencies from one or more PSR-11 containers.

Autowire uses the PHP reflection API to peek at constructor parameter types and injects required and optional dependencies from assigned containers.

📔 转到文档

安装

通过composer安装

composer require tomrf/autowire

使用方法

$autowire = new \Tomrf\Autowire\Autowire();

$instance = $autowire->instantiateClass(MyClassWithDependencies::class, $container);

测试

composer test

许可证

本项目采用MIT许可证(MIT)发布。更多信息请参阅LICENSE

文档

📂 Tomrf\Autowire\Autowire::class

最小化类,通过自动装配从PSR-11容器中注入类构造函数依赖以实现依赖注入。

resolveDependencies()

返回一个类构造函数的已解析依赖数组。

从一个或多个PSR-11容器中解析依赖。

如果使用可用容器无法满足所需依赖,则抛出AutowireException。

public function resolveDependencies(
    object|string $classOrObject,
    Psr\Container\ContainerInterface $containers
): array

@throws   \Tomrf\Autowire\AutowireException
@return   (null|object)[]

instantiateClass()

在成功解析所有必需依赖后,返回一个类的实例。

如果类不存在或使用可用容器无法满足所需依赖,则抛出AutowireException。

public function instantiateClass(
    string $class,
    Psr\Container\ContainerInterface $containers
): object

@throws   \Tomrf\Autowire\AutowireException

listDependencies()

返回一个数组,其中包含给定类或对象/调用的所有依赖(方法参数)和相关属性。

public function listDependencies(
    object|string $classOrObject,
    string $methodName = '__construct'
): array

@throws   \Tomrf\Autowire\AutowireException
@return   array<string,bool|string>[] Array of parameters with attributes

2022-06-28T01:41:09+02:00使用📚tomrf/readme-gen生成