for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace ZingleCom\Enum\Meta;
/**
* Class GeneratorFactory
*/
class GeneratorFactory
{
* @var GeneratorInterface
private static $generator;
* @param bool $shared
* @return GeneratorInterface
public static function create($shared = true): GeneratorInterface
if (true === $shared) {
return self::getGenerator();
}
return self::make();
private static function getGenerator(): GeneratorInterface
if (null === self::$generator) {
self::$generator = self::make();
return self::$generator;
private static function make(): GeneratorInterface
return new Generator();