stratadox / instantiator
v0.2
2020-11-12 12:16 UTC
Requires
- php: >=7.2
Requires (Dev)
- php-coveralls/php-coveralls: ^2.0
- phpstan/phpstan: ^0.9.2
- phpunit/phpunit: ^7.0
This package is auto-updated.
Last update: 2024-09-19 23:10:39 UTC
README
轻量级实例化器。
安装
使用 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
接口。