Instantiator\Instantiator::buildFactory PHP Method

buildFactory() public method

public buildFactory ( string $className ) : Closure
$className string
return Closure
    public function buildFactory($className)
    {
        $reflectionClass = $this->getReflectionClass($className);
        if ($this->isInstantiableViaReflection($reflectionClass)) {
            return function () use($reflectionClass) {
                return $reflectionClass->newInstanceWithoutConstructor();
            };
        }
        $serializedString = sprintf('%s:%d:"%s":0:{}', $this->getSerializationFormat($reflectionClass), strlen($className), $className);
        $this->attemptInstantiationViaUnSerialization($reflectionClass, $serializedString);
        return function () use($serializedString) {
            return unserialize($serializedString);
        };
    }