This is a minor release of Doctrine DBAL that aggregates over 30 fixes and improvements developed over the last 3 months.
This release includes all changes of the 2.7.x series, as well as feature additions and improvements that couldn’t land in patch releases.
Backwards Compatibility Breaks
This doesn't contain any intentional Backwards Compatibility (BC) breaks.
- The dependency on doctrine/common is removed. DBAL now depends on doctrine/cache and doctrine/event-manager instead.
Please see details in the UPGRADE.md documentation.
- The usage of binary fields whose length exceeds the maximum field size on a given platform is deprecated. Please use binary fields of a size which fits all target platforms, or use blob explicitly instead.
- The usage of DB-generated UUIDs is deprecated. Their format is inconsistent across supported platforms and therefore the feature is not portable. Use a PHP library (e.g. ramsey/uuid) to generate UUIDs on the application side.
- Initial support of MySQL 8.
- Initial support of PostgreSQL 11.
- Ability to evaluate arbitrary SQL expressions via
Improvements and Fixes
- Improved support of binary fields on Oracle and IBM DB2.
- Improved SQL Server configuration capabilities via both
- Improved handling of
AUTOINCREMENTed primary keys in SQLite.
- Integration tests are run against IBM DB2 on Travis CI.
- Code coverage is collected for the Oracle platform on continuousphp.
Total issues resolved: 33
- 3187: Deprecate usage of binary fields whose length exceeds maximum thanks to @morozov
- 3188: Deprecated usage of binary fields whose length exceeds the platform maximum thanks to @morozov
- 3192: Added more information to the deprecation notice thanks to @morozov
- 3212: Deprecated usage of DB-generated UUIDs thanks to @morozov
- 3109: Allow to specify arbitrary SQL expression in AbstractPlatform::getDummySelectSQL() thanks to @morozov
- 3128: Add MySQL 8 reserved keywords thanks to @mlocati
- 3160: Test against Postgres 11 thanks to @Majkl578
- 3149: Introduced binary binding type to support binary parameters on Oracle thanks to @morozov
- 3178: Fix incorrect exception thrown from SQLAnywhere16Platform thanks to @Majkl578
- 3044: Functional test for allowing dynamic intervals in date sub/add thanks to @AshleyDawson
- 3033: Added support for available DSN parameters for the PDOSqlsrv driver thanks to @aashmelev
- 3141: allow creating PRIMARY KEY AUTOINCREMENT fields for sqlite (unit tests) thanks to @TimoBakx
- 3143: initialize sql array into platform files thanks to @AlessandroMinoccheri
- 3157: When building a limit query, zero offset without a limit should be ignored thanks to @morozov
- 3180: Import simplified version of Common\Util\Debug for var dumping purposes thanks to @Majkl578
- 3117: Added badges for the develop branch in README thanks to @morozov
- 3125: Upgrading docs thanks to @jwage
- 3144: added improvement type into pull request template thanks to @AlessandroMinoccheri
Code Quality Improvements:
- 3025: Added PHPStan, apply changes for level 3 thanks to @Majkl578
- 3200: Php Inspections (EA Ultimate): minor code tweaks thanks to @kalessil
- 3204: Fix typo in AbstractPlatform thanks to @Majkl578
- 3205: Ignore OCI-* classes in static analysis (no stubs) thanks to @Majkl578
Continuous Integration Improvements:
- 3049: Test failures caused by invalid database connection result in fatal error thanks to @Majkl578
- 3102: Use newer PHPUnit to prevent crashes on failures thanks to @Majkl578
- 3112: Removed hard-coded configuration filenames from the test runner thanks to @morozov
- 3133: Travis DB2 thanks to @Majkl578, @morozov
- 3135: AppVeyor tweaks, retry coverage upload on failure thanks to @Majkl578
- 3137: Workaround for the inability to use a post-PHPUnit script on ContinuousPHP thanks to @morozov
- 3151: MSSQL DLL 5.2.0 has been released. thanks to @photodude