Driver::getReconnectExceptions()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 4
Bugs 1 Features 0
Metric Value
c 4
b 1
f 0
dl 0
loc 8
rs 9.4285
cc 1
eloc 5
nc 1
nop 0
1
<?php
2
3
namespace BsbDoctrineReconnect\DBAL\Driver\PDOMySql;
4
5
use BsbDoctrineReconnect\DBAL\Driver as DriverInterface;
6
use Doctrine\DBAL\DBALException;
7
use Doctrine\DBAL\Driver\PDOMySql\Driver as PDOMySqlDriver;
8
9
/**
10
 * Class Driver
11
 *
12
 * @package BsbDoctrineReconnect\DBAL\Driver\PDOMySql
13
 */
14
class Driver extends PDOMySqlDriver implements DriverInterface
15
{
16
    /**
17
     * @return array
18
     */
19
    public function getReconnectExceptions()
20
    {
21
        return [
22
            'SQLSTATE[HY000]: General error: 2006 MySQL server has gone away',
23
            'SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, '
24
            . 'or not known'
25
        ];
26
    }
27
28
    /**
29
     * @param DBALException $e
30
     * @return bool
31
     */
32
    public function shouldStall(DBALException $e)
33
    {
34
        return stristr($e->getMessage(), 'php_network_getaddresses') !== false;
35
    }
36
}
37