Skip to content

Stratadox/Instantiator

Repository files navigation

Instantiator

Build Status Coverage Status Scrutinizer Code Quality Latest Stable Version License

Lightweight instantiator.

Installation

Install using composer require stratadox/instantiator

What is this?

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.

Basic usage

<?php
use Stratadox\Instantiator\ObjectInstantiator;

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

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

How does it work?

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.

About

Provides clean instances

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages