Lightweight instantiator.
Install using composer require stratadox/instantiator
The Instantiator
module provides a most simplistic way of producing empty
instances.
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.
<?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.
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.