- Internal
Formal\AccessLayer\Connection::intercept()
Formal\AccessLayer\Query\BuilderFormal\AccessLayer\Query\SQLnamed constructors allow to pass all the parameters at once via the second argumentFormal\AccessLayer\Query\Transaction
- Requires PHP
8.4 Formal\AccessLayer\Connectionis now a final class, all previous implementations are now flagged as internalFormal\AccessLayer\Queryis now a final class- Requires
innmind/black-box:~6.5 - Requires
innmind/immutable:~6.0 - Requires
innmind/url:~5.0
Formal\AccessLayer\Query\Select::onDemand(), use::lazily()insteadFormal\AccessLayer\Query\SQL, useFormal\AccessLayer\Queryinstead
Formal\AccessLayer\Connection\PDO::persistent()Formal\AccessLayer\Query\Where::sql()and::parameters(), use::normalize()insteadFormal\AccessLayer\Query\Commit, useTransaction::commitinsteadFormal\AccessLayer\Query\StartTransaction, useTransaction::startinsteadFormal\AccessLayer\Query\Rollback, useTransaction::rollbackinstead
Formal\Access\Layer\Query\Select::columns()now accepts row valuesFormal\Access\Layer\Query\Insert::into()now accepts aSelectquery to specify the rows to insert
- Support for
innmind/black-box6
- Support for PHP
8.4
Formal\AccessLayer\Query\Delete::join()
Formal\AccessLayer\Driver::sqlite
- Support for aliased table names when using
Formal\AccessLayer\Query\Delete
Formal\AccessLayer\DriverFormal\AccessLayer\Query\MultipleInsertFormal\AccessLayer\Table\Column\Type::uuid()Formal\AccessLayer\Table\Column\Type::bool()Formal\AccessLayer\Connection\Lazy::of()Formal\AccessLayer\Row::new()Formal\AccessLayer\Row\Value::of()
- Requires
innmind/specification:~4.1 Formal\AccessLayer\Query::sql()now has aDriverargumentFormal\AccessLayer\Query\Insert::into()only accepts 1Row, for multiple rows useMultipleInsertinsteadFormal\AccessLayer\Connection\Lazyconstructor is now private, use::of()insteadFormal\AccessLayer\Rowconstructor is now private, use::new()insteadFormal\AccessLayer\Row\Valueconstructor is now private, use::of()insteadFormal\AccessLayer\Table\Columnconstructor is now private, use::of()insteadFormal\AccessLayer\Table\Column\Nameconstructor is now private, use::of()insteadFormal\AccessLayer\Table\Nameconstructor is now private, use::of()instead
Formal\AccessLayer\Query\Delete::join()Formal\AccessLayer\Query\Update::join()
- The type of a raw value is now determined from the value instead of using
unspecifiedinstead.
Formal\AccessLayer\Query\Parameter\Type::for()to determine a type for any given value
Formal\AccessLayer\Query\CreateTable::unique()Formal\AccessLayer\Query\Constraint\Unique
Formal\AccessLayer\Query\Constraint\ForeignKey::named()
- Queries can be used a value of a specification in a where clause
- Support for
innmind/immutable:~5.0
Formal\AccessLayer\Row\Valuenow accepts a namespaced column nameFormal\AccessLayer\Row\Value::columnSql()
Formal\AccessLayer\Query\Deletedeletes from the main table instead of all joined tables as well
Formal\AccessLayer\Query\Constraint\ForeignKey::onDeleteSetNull()
- You can now use an aliased table name to update from with
Formal\AccessLayer\Update Formal\AccessLayer\Update::join()
- The logic between
Sign::startsWithandSign::endsWithwere inversed Sign::contains,Sign::startsWithandSign::endsWithwould not yield the expected result when containing special characters\,_and%(as they're special pattern characters), these characters are now escaped so it would exactly match
- You can now use an aliased table name to delete from with
Formal\AccessLayer\Delete
Formal\AccessLayer\Query\Constraint\PrimaryKeyFormal\AccessLayer\Query\Constraint\ForeignKeyFormal\AccessLayer\Query\CreateTable::constraint()Formal\AccessLayer\Query\Delete::join()
- Using a namespaced column as a property of a specification failed when using
Sign::in
Formal\AccessLayer\Query\Select::count()
- Using a number as a column alias crashed because it wasn't a string
Formal\AccessLayer\Query\Select::join()Formal\AccessLayer\Query\Select\Join
Formal\AccessLayer\Query\Select::limit()Formal\AccessLayer\Query\Select::orderBy()Formal\AccessLayer\Query\Select\Direction
Formal\AccessLayer\Table\Name::of()Formal\AccessLayer\Table\Name::as()Formal\AccessLayer\Table\Column::of()Formal\AccessLayer\Table\Column\Name::of()Formal\AccessLayer\Table\Column\Name::in()Formal\AccessLayer\Table\Column\Name::as()Formal\AccessLayer\Table\Name\AliasedFormal\AccessLayer\Table\Column\Name\NamespacedFormal\AccessLayer\Table\Column\Name\Aliased
- Require
innmind/black-box5
- Support for PHP
8.1
Formal\AccessLayer\Row::toArray()- Allow to specify the connection charset via the
charsetquery parameter in the connectionUrl