stratadox/instantiator

v0.2 2020-11-12 12:16 UTC

README

Build Status Coverage Status Scrutinizer Code Quality Latest Stable Version License

轻量级实例化器。

安装

使用 composer require stratadox/instantiator 进行安装

这是什么?

Instantiator 模块提供了一个最简单的方式来生成空实例。

Instantiator 配置为生成特定类的实例。这样,它与大多数其他实例化器包不同,这些包通常将实例化的类作为方法参数指定。

基本用法

<?php
use Stratadox\Instantiator\ObjectInstantiator;

$provideFoo = ObjectInstantiator::forThe(Foo::class);

assert($provideFoo->instance() instanceof Foo);
assert(Foo::class === $provideFoo->class());

它是如何工作的?

ObjectInstantiator 类基本上只是扩展了 ReflectionClass 以重命名其 newInstanceWithoutConstructor 方法。在实例化方法失败的情况下,例如当最终类从内部类继承时,将使用反序列化代替。

此外,此模块还包括一个 PredefinedInstanceProvider。这并不是真正的实例化器,而是一个迭代器,但这并不妨碍它实现 Instantiator 接口。