b2pweb/bdf-instantiator

Bdf Instantiator 组件

v1.0.6 2024-02-26 14:44 UTC

This package is auto-updated.

Last update: 2024-09-26 16:00:26 UTC


README

一个基本的对象实例化工具。

build codecov Packagist Version Total Downloads

通过 composer 安装

$ composer require b2pweb/bdf-instantiator

使用说明

从容器定义中解析时的基本使用。

use Bdf\Instantiator\Instantiator;
use Psr\Container\ContainerInterface;
use Psr\Log\LoggerInterface;

/** @var ContainerInterface $container */
$container->add(Logger::class, LoggerInterface::class);

$instantiator = new Instantiator($container);
$instantiator->make(LoggerInterface::class);

实例化器根据容器定义解析方法的依赖项。

use Bdf\Instantiator\Instantiator;
use Psr\Container\ContainerInterface;
use Psr\Log\LoggerInterface;

class Foo
{
    public $logger;
    
    /**
     * Foo constructor.
     * 
     * @param LoggerInterface $logger  
     */
    public function __construct(LoggerInterface $logger)
    {
        $this->logger = $logger;
    }
}

/** @var ContainerInterface $container */
$container->add(Logger::class, LoggerInterface::class);

$instantiator = new Instantiator($container);
$foo = $instantiator->make(Foo::class);

var_dump($foo->logger); // Logger

许可证

在 MIT 许可证的条款下分发。