PHPackages                             kirillsablin/doctrine-failover - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. kirillsablin/doctrine-failover

ActiveLibrary[Database &amp; ORM](/categories/database)

kirillsablin/doctrine-failover
==============================

Doctrine mysql master-master failover with automatic failback

4951PHP

Since Sep 30Pushed 11y ago2 watchersCompare

[ Source](https://github.com/kirillsablin/doctrine-failover)[ Packagist](https://packagist.org/packages/kirillsablin/doctrine-failover)[ RSS](/packages/kirillsablin-doctrine-failover/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

doctrine-failover
=================

[](#doctrine-failover)

Doctrine mysql master-master failover with automatic failback

Installation
------------

[](#installation)

At this moment only table based heartbeat strategy implemented (checking if replication is online)

1. Create heartbeat table at both masters Example SQL:

    ```
     CREATE TABLE `heartbeat` (
       `value` varchar(255) DEFAULT NULL,
       KEY `value` (`value`)
     )

    ```
2. If you use composer add to your composer.json

    ```
     "require": {
      ....
         "kirillsablin/doctrine-failover": "dev-master"
      ....
      }

    ```

2a) If you don't use composer copy add contents of src folder to you project and setup autoload if necessary

3. Add necessary configuration to to your Doctrine's config

Doctrine configuration example
------------------------------

[](#doctrine-configuration-example)

```
$config = array(
                'driver' => 'pdo_mysql',
                'host'   => '192.168.0.1',
                'port'  => '3306', // optional
                'reserveHost' => '192.168.0.1', // mandatory
                'reservePort' => '3308', // optional
                'user' => 'username', // if you need different username or password for reserve host use reserveUser and reservePassword
                'password' => "password",
                'dbname' => "test",
                'heartbeatTable' => 'heartbeat', // default value is 'heartbeat'
                'heartbeatTableColumn' => 'value', // default value is 'value'
                'dontRetryPeriod' => '600', // period between retries to failback to main host
                'wrapperClass' => '\DoctrineExtensions\DBAL\Connections\MasterMasterFailoverConnection', // mandatory
                'failoverStatusCacheImpl' => new \Doctrine\Common\Cache\ApcCache() // mandatory, should be instance of \Doctrine\Common\Cache
);
```

Failover-specific events
------------------------

[](#failover-specific-events)

Two new event's types were added 'onFailover', 'onFailback'.

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community5

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/ec9bf1f2e5507af717313f6c4ea95c643695928a7cfbe2bffe598b1d7f1bb8a6?d=identicon)[kirillsablin](/maintainers/kirillsablin)

### Embed Badge

![Health badge](/badges/kirillsablin-doctrine-failover/health.svg)

```
[![Health](https://phpackages.com/badges/kirillsablin-doctrine-failover/health.svg)](https://phpackages.com/packages/kirillsablin-doctrine-failover)
```

###  Alternatives

[doctrine/orm

Object-Relational-Mapper for PHP

10.2k285.3M6.2k](/packages/doctrine-orm)[jdorn/sql-formatter

a PHP SQL highlighting library

3.9k115.1M102](/packages/jdorn-sql-formatter)[illuminate/database

The Illuminate Database package.

2.8k52.4M9.4k](/packages/illuminate-database)[mongodb/mongodb

MongoDB driver library

1.6k64.0M546](/packages/mongodb-mongodb)[ramsey/uuid-doctrine

Use ramsey/uuid as a Doctrine field type.

90340.3M211](/packages/ramsey-uuid-doctrine)[reliese/laravel

Reliese Components for Laravel Framework code generation.

1.7k3.4M16](/packages/reliese-laravel)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
