А можно пример? Похоже вы хотите что то сделать не правильно...
Я уже поковырял коннекшен, похоже он мне тоже не сильно поможет, даже без final - слишком много переопределять придется. Проблема не совсем типовая: приложение не умирающее, живет в памяти с помощью RoadRunner. И ждет на сокете подключения клиента. Таких воркеров 1000. В один момент, с базой что-нибудь случилось, или с сетью - не важно, коннешен к ней умер и сразу поднялся. И во всех 1000 инстансах приложения, в уже существующих $connection->pdo связь оборвана, но это никак не возможно ни проверить, ни обработать на уровне класса Connection. isActive проверяет только инстанцирования PDO - оно есть, а подлючение в нем уже нет. Думал сделать какую-нить обертку и в ней в случае падения запроса пробовать пересоздавать подключение, и если не удалось - то уже эксепшен. Но похоже придется все это обрабатывать на уровне репозитория (( Но даже тут проблема в том, что методы open и close в ConnectionInterface не поисаны, сейчас на это PR сделаю. Если есть идеи как такую ситуацию можно обработать - будет интересно выслучашть.