Lightweight instantiator., (*2)
Install using composer require stratadox/instantiator
, (*3)
The Instantiator
module provides a most simplistic way of producing empty
instances., (*4)
An Instantiator
is configured to produce instances of a specific class.
In this way it differs from most other instantiator packages, which usually
specify the class to instantiate as method parameter., (*5)
<?php use Stratadox\Instantiator\ObjectInstantiator; $provideFoo = ObjectInstantiator::forThe(Foo::class); assert($provideFoo->instance() instanceof Foo); assert(Foo::class === $provideFoo->class());
The ObjectInstantiator
class basically just extends ReflectionClass
in order
to alias its newInstanceWithoutConstructor
method.
In cases where this instantiation method fails, for instance when a final class
inherits from an internal class, deserialization is used instead., (*6)
Alternatively, this module includes a PredefinedInstanceProvider
. This one
isn't really an instantiator, but rather an iterator, but that does not stop it
from implementing the Instantiator
interface., (*7)