Skip to content

v2.0.0

Choose a tag to compare

@rasuvaeff rasuvaeff released this 01 Aug 22:23
404e040

Breaking. See UPGRADE.md — an installation that already
applied the migration must rewrite one row in the migration table.

  • The bundled migration moved to Rasuvaeff\Yii3SettingsDb\Migration\M260605120000CreateSettingsTable
    (src/Migration/, PSR-4 autoloaded) from a global class in migrations/.
    Register it with setSourceNamespaces() instead of a vendor/ path. Being
    autoloadable is what makes it safe to reference in DI at all: with the old
    global class, adding any container definition for it made
    Yiisoft\Di\Container fatal at build time in every request, because
    new ReflectionClass() ran before the migration runner had required the file.
  • The documented way to rename the table never worked.
    M...::class => ['__construct()' => ['table' => ...]] is ignored:
    yiisoft/db-migration builds migrations through Injector::make(), which
    resolves arguments by name or type from the container and does not read
    definitions keyed by the migration's class — and a scalar string $table has
    no type to resolve. Users following the README silently got the default name.
  • The table name is now a typed value object that Injector can resolve,
    built by config/di.php from params. One source of truth: the migration and
    DbSettingsProvider cannot disagree any more (in 1.x the runtime read params while the
    migration used its own default, so configuring params pointed the runtime at a
    table the migration had never created).
  • New table_prefix param, prepended to table — a single place to keep
    package tables out of the way of an application's own.
  • DbSettingsProvider validates the table name (through the same value object)
    — in 1.x it interpolated whatever string it was given straight into the query
    builder, with no identifier check at all.
  • The row mapper's integer check is anchored with \z instead of $: PCRE's
    $ also matches before a trailing newline.
  • Bump rasuvaeff/property-testing to ^2.6.