/**
* @param string $locale e.g. 'fr_FR', 'en_US'
*
* @return FakerGenerator
*/
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;
}