foundry
foundry copied to clipboard
Document using custom faker providers
With a faker generator factory service:
namespace Your\Namespace;
class FakerGenerator
{
public static function create(): \Faker\Generator
{
$generator = \Faker\Factory::create();
$generator->addProvider(new TitleProvider($generator));
return $generator;
}
}
services:
my_faker:
class: Faker\Generator
factory: ['Your\Namespace\FakerGenerator', 'create']
zenstruck_foundry:
faker:
service: my_faker
Or with a custom faker generator:
namespace Your\Namespace;
use Your\Namespace\YourProvider;
use Faker\Generator;
use Faker\Factory;
class CustomGenerator extends Generator
{
public function __construct()
{
// Get a default generator with default providers
$generator = Factory::create();
// Add custom providers
$generator->addProvider(new YourProvider($generator));
// copy default and custom providers to this custom generator
foreach ($generator->getProviders() as $provider) {
$this->addProvider($provider);
}
}
}
zenstruck_foundry:
faker:
service: Your\Namespace\CustomGenerator
Per slack conversation with @voltel.