classFixtureProvider
class FixtureProvider
extends SqlSchemaProvider
Public API: explicitly declared with
@visibility public.Faker provider that generates fixtures from CREATE TABLE SQL statements.
$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']$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,
)Parameters
$faker | Generator | |
$typeMapper | ?TypeMapperInterface | |
$hydrator | ?HydratorInterface | |
$schemaParser | ?SchemaParserInterface | |
$dialect | string | SQL dialect ('mysql' or 'sqlite') |
Calls 6
- class-const PlatformFactory::DRIVER_MYSQL() line 49
- static-call SqlSchemaProvider::__construct() line 51
- new StaticSchemaResolver line 54
- static-call PlatformFactory::createTypeMapper() line 56
- static-call PlatformFactory::createSchemaParser() line 57
- new FixtureGenerator line 59
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
$createTableSql | string | CREATE TABLE SQL statement |
$overrides | array<string, mixed> | Override values |
$className | class-string<T>|null | Deserialization target class |
$dialect | string|null | SQL dialect for this specific call (overrides constructor default) |
Returns
($className is null ? array<string, mixed> : T)Test cases 52
FixtureGenerationBench::benchWarmRowcallsCorrectnessHarness::fixtureRowcallsMysqliCorrectnessHarness::setupcallsInsertSelectTarget::__invokecallsPostgreSqlEndToEndTest::fixtureReproducibleWithSeedcallsPostgreSqlEndToEndTest::fixtureWithArrayTypescallsPostgreSqlEndToEndTest::fixtureWithCommonTypescallsPostgreSqlEndToEndTest::fixtureWithGeneratedColumncallsPostgreSqlEndToEndTest::fixtureWithNumericPrecisioncallsPostgreSqlEndToEndTest::fixtureWithOverridescallsPostgreSqlEndToEndTest::fixtureWithPgSpecificTypescallsPostgreSqlEndToEndTest::fixtureWithSerialTypescallsPostgreSqlEndToEndTest::fixtureWithTimestampVariantscallsSqliteIntegrationTest::fixtureProviderDialectOverridecallsSqliteIntegrationTest::fixtureProviderWithSqliteDialectcallsFixtureProviderTest::testCacheDistinguishesDifferentSqlSameDialectcallsFixtureProviderTest::testCachedSchemaDistinguishesDialectscallsFixtureProviderTest::testCacheKeyIncludesDialectcallsFixtureProviderTest::testCacheSeparatesDefaultAndOverrideDialectcallsFixtureProviderTest::testCustomSchemaParserIsPreservedcallsFixtureProviderTest::testCustomTypeMapperIsPreservedcallsFixtureProviderTest::testDefaultDialectIsUsedWhenNullDialectPassedcallsFixtureProviderTest::testDialectOverrideUsesOverrideNotDefaultcallsFixtureProviderTest::testFixtureCachesSchemacallsFixtureProviderTest::testFixtureCanOverrideAutoIncrementcallsFixtureProviderTest::testFixtureHydratesClasscallsFixtureProviderTest::testFixtureResultIsReproducibleWithSeedcallsFixtureProviderTest::testFixtureReturnsArraycallsFixtureProviderTest::testFixtureSameDialectUsesInternalParsercallsFixtureProviderTest::testFixtureSkipsAutoIncrementcallsFixtureProviderTest::testFixtureWithAllNumericTypescallsFixtureProviderTest::testFixtureWithBinaryColumnscallsFixtureProviderTest::testFixtureWithBitTypecallsFixtureProviderTest::testFixtureWithBooleanTypecallsFixtureProviderTest::testFixtureWithCustomSchemaParsercallsFixtureProviderTest::testFixtureWithCustomTypeMappercallsFixtureProviderTest::testFixtureWithDateTypescallsFixtureProviderTest::testFixtureWithDialectOverridecallsFixtureProviderTest::testFixtureWithEnumcallsFixtureProviderTest::testFixtureWithGeneratedColumnSkippedcallsFixtureProviderTest::testFixtureWithJsoncallsFixtureProviderTest::testFixtureWithNullableColumnscallsFixtureProviderTest::testFixtureWithOverridescallsFixtureProviderTest::testFixtureWithSetcallsFixtureProviderTest::testFixtureWithSpatialTypescallsFixtureProviderTest::testFixtureWithSqliteDialectcallsFixtureProviderTest::testFixtureWithStringTypescallsFixtureProviderTest::testFixtureWithUnsignedTypescallsFixtureProviderTest::testGetSchemaResolverGeneratingAFixtureAlsoMakesItAvailableToFixturescallsFixtureProviderTest::testSchemaCacheDistinguishesDifferentDialectscallsFixtureProviderTest::testSchemaCacheUsesDialectInKeycallsSqlSchemaProviderTest::testCachesSchemasThroughThePublicProviderContractcalls
Calls 2
- method-call FixtureProvider::getSchema() line 78
- method-call FixtureGenerator::generate() line 79
public function fixtures(
FixturePlan|string $plan,
array<string, int|array<mixed>|TableOverrides> $overrides = [],
): FixtureSetGenerate 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
$plan | FixturePlan|string | A plan, or the relation syntax for one |
$overrides | array<string, int|array<mixed>|TableOverrides> | Table name => what to override |
Returns
Test cases 2
Calls 3
- new PlanGenerator line 93
- method-call PlanGenerator::generate() line 95
- static-call FixturePlan::from() line 95
public function registerSchema(string $createTableSql): TableSchemaMake a table available to fixtures() under its own name.
Parameters
$createTableSql | string |
Returns
Test cases 4
Calls 1
- method-call FixtureProvider::getSchema() line 103
public function getSchemaResolver(): StaticSchemaResolverThe registry backing fixtures().
Returns
public function getFixtureGenerator(): FixtureGeneratorGet the underlying fixture generator.
Returns
Test cases 1
public function getDialect(): stringGet the default dialect.
Returns
stringPrivate surface 4§
Implementation details, listed for orientation only.
private FixtureGenerator $fixtureGeneratorprivate string $dialectprivate Generator $fakerprivate StaticSchemaResolver $schemaResolverTest cases 62§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 41
FixtureProviderTest::testCacheDistinguishesDifferentSqlSameDialectcallsFixtureProviderTest::testCachedSchemaDistinguishesDialectscallsFixtureProviderTest::testCacheKeyIncludesDialectcallsFixtureProviderTest::testCacheSeparatesDefaultAndOverrideDialectcallsFixtureProviderTest::testCustomSchemaParserIsPreservedcallsFixtureProviderTest::testCustomTypeMapperIsPreservedcallsFixtureProviderTest::testDefaultDialectIsUsedWhenNullDialectPassedcallsFixtureProviderTest::testDialectOverrideUsesOverrideNotDefaultcallsFixtureProviderTest::testFixtureCachesSchemacallsFixtureProviderTest::testFixtureCanOverrideAutoIncrementcallsFixtureProviderTest::testFixtureHydratesClasscallsFixtureProviderTest::testFixtureResultIsReproducibleWithSeedcallsFixtureProviderTest::testFixtureReturnsArraycallsFixtureProviderTest::testFixtureSameDialectUsesInternalParsercallsFixtureProviderTest::testFixturesGeneratesLinkedRowsFromRegisteredSchemascallsFixtureProviderTest::testFixtureSkipsAutoIncrementcallsFixtureProviderTest::testFixtureWithAllNumericTypescallsFixtureProviderTest::testFixtureWithBinaryColumnscallsFixtureProviderTest::testFixtureWithBitTypecallsFixtureProviderTest::testFixtureWithBooleanTypecallsFixtureProviderTest::testFixtureWithCustomSchemaParsercallsFixtureProviderTest::testFixtureWithCustomTypeMappercallsFixtureProviderTest::testFixtureWithDateTypescallsFixtureProviderTest::testFixtureWithDialectOverridecallsFixtureProviderTest::testFixtureWithEnumcallsFixtureProviderTest::testFixtureWithGeneratedColumnSkippedcallsFixtureProviderTest::testFixtureWithJsoncallsFixtureProviderTest::testFixtureWithNullableColumnscallsFixtureProviderTest::testFixtureWithOverridescallsFixtureProviderTest::testFixtureWithSetcallsFixtureProviderTest::testFixtureWithSpatialTypescallsFixtureProviderTest::testFixtureWithSqliteDialectcallsFixtureProviderTest::testFixtureWithStringTypescallsFixtureProviderTest::testFixtureWithUnsignedTypescallsFixtureProviderTest::testGetDialectDefaultsToMysqlcallsFixtureProviderTest::testGetFixtureGeneratorcallsFixtureProviderTest::testGetSchemaResolverGeneratingAFixtureAlsoMakesItAvailableToFixturescallsFixtureProviderTest::testRegisterSchemaARegisteredSchemaBecomesAvailableToFixturescallsFixtureProviderTest::testRegisterSchemaReturnsTheParsedTablecallsFixtureProviderTest::testSchemaCacheDistinguishesDifferentDialectscallsFixtureProviderTest::testSchemaCacheUsesDialectInKeycalls
Other tests reaching this symbol 21
FixtureGenerationBench::benchRelatedRowscallsFixtureGenerationBench::benchWarmRowcallsFixtureGenerationBench::setUpcallsCorrectnessHarness::__constructcallsCorrectnessHarness::fixtureRowcallsMysqliCorrectnessHarness::__constructcallsMysqliCorrectnessHarness::setupcallsInsertSelectTarget::__constructcallsInsertSelectTarget::__invokecallsPostgreSqlEndToEndTest::fixtureReproducibleWithSeedcallsPostgreSqlEndToEndTest::fixtureWithArrayTypescallsPostgreSqlEndToEndTest::fixtureWithCommonTypescallsPostgreSqlEndToEndTest::fixtureWithGeneratedColumncallsPostgreSqlEndToEndTest::fixtureWithNumericPrecisioncallsPostgreSqlEndToEndTest::fixtureWithOverridescallsPostgreSqlEndToEndTest::fixtureWithPgSpecificTypescallsPostgreSqlEndToEndTest::fixtureWithSerialTypescallsPostgreSqlEndToEndTest::fixtureWithTimestampVariantscallsSqliteIntegrationTest::fixtureProviderDialectOverridecallsSqliteIntegrationTest::fixtureProviderWithSqliteDialectcallsSqlSchemaProviderTest::testCachesSchemasThroughThePublicProviderContractcalls