class FixtureProvider
    extends SqlSchemaProvider
Public API: explicitly declared with @visibility public.

Faker provider that generates fixtures from CREATE TABLE SQL statements.

Generate a row while leaving the auto-increment key to the databasedoctest
$provider = new \SqlFixture\FixtureProvider(\Faker\Factory::create());
    $provider->fixture('CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30))', ['name' => 'Alice']) // => ['name' => 'Alice']
Generate linked rows from registered schemasdoctest
$provider = new \SqlFixture\FixtureProvider(\Faker\Factory::create());
    $provider->registerSchema('CREATE TABLE users (id INT PRIMARY KEY)');
    $provider->registerSchema('CREATE TABLE posts (user_id INT)');
    $rows = $provider->fixtures('users.id < posts.user_id', ['users' => ['id' => 9], 'posts' => 2]);
    $rows->rows('posts') // => [['user_id' => 9], ['user_id' => 9]]

Methods§

public function __construct(
    Generator $faker,
    ?TypeMapperInterface $typeMapper = null,
    ?HydratorInterface $hydrator = null,
    ?SchemaParserInterface $schemaParser = null,
    string $dialect = PlatformFactory::DRIVER_MYSQL,
)
public function fixture<T of object>(
    string $createTableSql,
    array<string, mixed> $overrides = [],
    class-string<T>|null $className = null,
    string|null $dialect = null,
): ($className is null ? array<string, mixed> : T)

Generate a fixture from a CREATE TABLE SQL statement.

Parameters

$createTableSqlstringCREATE TABLE SQL statement
$overridesarray<string, mixed>Override values
$classNameclass-string<T>|nullDeserialization target class
$dialectstring|nullSQL dialect for this specific call (overrides constructor default)

Returns

($className is null ? array<string, mixed> : T)
Test cases 52
Calls 2
public function fixtures(
    FixturePlan|string $plan,
    array<string, int|array<mixed>|TableOverrides> $overrides = [],
): FixtureSet

Generate the rows a plan describes.

Every table the plan names has to have been registered, either through registerSchema() or by generating a fixture from its DDL first.

Parameters

$planFixturePlan|stringA plan, or the relation syntax for one
$overridesarray<string, int|array<mixed>|TableOverrides>Table name => what to override

Returns

Test cases 2
Calls 3
public function registerSchema(string $createTableSql): TableSchema
public function getFixtureGenerator(): FixtureGenerator

Get the underlying fixture generator.

Test cases 1

Private surface 4§

Implementation details, listed for orientation only.

private FixtureGenerator $fixtureGenerator
private string $dialect
private Generator $faker
private StaticSchemaResolver $schemaResolver

Test cases 62§

Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.

Dedicated tests 41
Other tests reaching this symbol 21