Skip to content

Releases: facile-it/doctrine-mysql-come-back

3.0.3

02 Sep 11:17
3.0.3
0734bb3

Choose a tag to compare

  • Intercept new timeout message in MySQL 8.0.24+ under PHP 8.4+ (thanks @ackermannd)
  • Test against PHP 8.5

2.1.0

02 Sep 11:19
2.1.0
f886649

Choose a tag to compare

  • Bump minimum PHP version to 8.1
  • Intercept new timeout message in MySQL 8.0.24+ under PHP 8.4+ (thanks @ackermannd)
  • Test against PHP 8.5

2.0.2

02 Sep 16:48
2.0.2
f548c2a

Choose a tag to compare

  • Resolve PHP 8.4 deprecation (fix 2.0.1 tag)

3.0.2

15 Mar 23:21
3.0.2
1d3097f

Choose a tag to compare

  • Resolve PHP 8.4 deprecation

2.0.1

15 Mar 23:54
2.0.1
a118d3a

Choose a tag to compare

  • Resolve PHP 8.4 deprecation

3.0.1

13 Mar 09:56
3.0.1
f9bacb5

Choose a tag to compare

  • Fixed beginTransaction reconnection behavior with MySQLi and DBAL 4.2.3+

3.0.0

10 Mar 11:33
3.0.0
d2f6c51

Choose a tag to compare

This new major version is identical to the previous one; the only changes are the ones needed to maintain compatibility with the new DBAL major, so mainly signature changes.

Added

  • Support DBAL 4

Removed

  • Drop support for DBAL 3

New Contributors

Full Changelog: 2.0.0...3.0.0

2.0.0

08 Jun 12:03
2.0.0
336b267

Choose a tag to compare

This is the final, stable release of the new version of this library, supporting DBAL 3.6+; unfortunately, DBAL 3.0 to 3.5 is unsupported (but upgrading to 3.6 should not be an issue).

If you're upgrading from a 1.x version, please refer to the UPGRADE-2.0.md document.

The version has no changes from 2.0.0-BETA4; the following is the detailed changelog from the 1.x series:

Added

  • Support DBAL v3.6+
  • Add GoneAwayDetector interface and MySQLGoneAwayDetector class implementation
  • Add setGoneAwayDetector method to the connections
  • Add handling of AWS MySQL RDS connection loss
  • Add validation to x_reconnect_attempts
  • Add mutation testing with Infection

Changed

namespace Facile\DoctrineMySQLComeBack\Doctrine\DBAL;

use Doctrine\DBAL\Cache\QueryCacheProfile;
use Doctrine\DBAL\Connection as DBALConnection;
+use Doctrine\DBAL\Result;

class Connection extends DBALConnection
{
// ...
-    public function prepare($sql)
+    public function prepare(string $sql): DBALStatement
// ...
-    public function executeQuery($query, array $params = array(), $types = array(), QueryCacheProfile $qcp = null)
+    public function executeQuery(string $sql, array $params = [], $types = [], ?QueryCacheProfile $qcp = null): Result
// ...
}
  • Change Statement constructor and method signatures to follow DBAL v3 changes:
namespace Facile\DoctrineMySQLComeBack\Doctrine\DBAL;

use Doctrine\DBAL\Cache\QueryCacheProfile;
use Doctrine\DBAL\Connection as DBALConnection;
+use Doctrine\DBAL\Result;

class Statement extends \Doctrine\DBAL\Statement
{
// ...
-    public function __construct($sql, ConnectionInterface $conn)
+    public function __construct(Connection $retriableConnection, Driver\Statement $statement, string $sql)
// ...
-    public function executeQuery($query, array $params = array(), $types = array(), QueryCacheProfile $qcp = null)
+    public function executeQuery(string $sql, array $params = [], $types = [], ?QueryCacheProfile $qcp = null): Result
// ...
}

Fixed

  • In PrimaryReadReplicaConnection, fetch driverOptions from under the primary key

Removed

  • Drop support for DBAL v2
  • Drop support for PHP 7.3
  • Removed Facile\DoctrineMySQLComeBack\Doctrine\DBAL\Connections\MasterSlaveConnection class
  • Removed Facile\DoctrineMySQLComeBack\Doctrine\DBAL\Driver\ServerGoneAwayExceptionsAwareInterface interface
  • Removed Facile\DoctrineMySQLComeBack\Doctrine\DBAL\Driver\ServerGoneAwayExceptionsAwareTrait trait
  • Removed Facile\DoctrineMySQLComeBack\Doctrine\DBAL\Driver\Mysqli\Driver class
  • Removed Facile\DoctrineMySQLComeBack\Doctrine\DBAL\Driver\PDOMySQL\Driver class
  • Removed Facile\DoctrineMySQLComeBack\Doctrine\DBAL\Driver\PDO\MySQL\Driver class
  • Removed Connection::query() method (due to drop in DBAL v3)
  • Removed Connection::refresh() method (due to drop in DBAL v3)
  • Removed Connection::isUpdateQuery() method (logic is now behind the GoneAwayDetector interface)
  • Removed Statement::bindValue() method
  • Removed Statement::bindParam() method
  • Removed Statement::execute() method
  • Removed Statement::setFetchMode() method

2.0.0-BETA4

05 Apr 15:31
2.0.0-BETA4
f0114b6

Choose a tag to compare

2.0.0-BETA4 Pre-release
Pre-release

Added

  • Centralize reconnect attempts counter
  • Add Statement::fromDBALStatement for simpler creation
  • Add mutation testing with Infection

Fixed

  • Avoid reconnection attempts if a transaction was opened (and not closed) before the "gone away" error
  • Avoid retrying SAVEPOINT statements
  • Handle Statement::bindParam and Statement::bindValue correctly on reconnection

Changed

  • Refactor Connection retry logic into a single method
  • Make Statement::__construct private

2.0.0-BETA3

01 Apr 22:51
2.0.0-BETA3
0103925

Choose a tag to compare

2.0.0-BETA3 Pre-release
Pre-release

Added

  • Add validation to x_reconnect_attempts

Fixed

  • In PrimaryReadReplicaConnection, fetch driverOptions from under the primary key