public createOrReturnExistingInstance ( string $locale ) : |
||
$locale | string | e.g. 'fr_FR', 'en_US' |
return |
public function createOrReturnExistingInstance(string $locale) : FakerGenerator
{
if (array_key_exists($locale, $this->generators)) {
return $this->generators[$locale];
}
$instance = FakerFactory::create($locale);
$generatorProviders = $this->generator->getProviders();
foreach ($generatorProviders as $provider) {
if (1 !== preg_match('/^Faker\\\\Provider.*/', get_class($provider))) {
$instance->addProvider($provider);
}
}
return $this->generators[$locale] = $instance;
}
private function getGenerator(GeneratorFactory $factory, string $formatter) { $explodedFormatter = explode(':', $formatter); $size = count($explodedFormatter); if (1 === $size) { return [$factory->getSeedGenerator(), $explodedFormatter[0]]; } if (2 === $size) { return [$factory->createOrReturnExistingInstance($explodedFormatter[0]), $explodedFormatter[1]]; } throw InvalidArgumentExceptionFactory::createForInvalidFakerFormatter($formatter); }