|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #74957 Introduce interfaces PDOInterface and PDOStatementInterface
Submitted: 2017-07-20 13:34 UTC Modified: 2021-08-09 11:32 UTC
From: aljosha dot papsch at vinexus dot eu Assigned:
Status: Suspended Package: PDO related
PHP Version: Irrelevant OS:
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
Block user comment
Status: Assign to:
Bug Type:
From: aljosha dot papsch at vinexus dot eu
New email:
PHP Version: OS:


 [2017-07-20 13:34 UTC] aljosha dot papsch at vinexus dot eu
Classes PDO and PDOStatement do not implement any interface, making it harder to add custom behaviour. For example, PDO does not handle reconnecting to database, which is an issue especially in long running processes. The best shot at implementing this feature is creating custom behaviour classes with the same methods as PDO/PDOStatement (most of it should just be adapter stuff). Unfortunately the custom behaviour class cannot be used in functions which have PDO/PDOStatement typehint, making them useless.

If PDO and PDOStatement implemented interfaces, it would be possible for the custom behaviour classes to implement those interfaces as well, making them interchangeable. No changes needed in callers of PDO/PDOStatement.


Add a Patch

Pull Requests

Pull requests:

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2017-07-20 14:07 UTC]
One way to approach this is by subclassing PDO and PDOStatement. You can use the PDO:: ATTR_STATEMENT_CLASS driver option to tell a PDO object which PDOStatement subclass to return from PDO::prepare().

If you have a different use case in mind, an API change like this would require an RFC. There's a description of the process here:
 [2017-07-28 06:43 UTC] andrew dot nester dot dev at gmail dot com
Thanks for the reported request!
I've just created my PR and started internal discussion.
Here is the links:

Will see how it goes :)
 [2017-10-24 08:32 UTC]
-Package: PDO Core +Package: PDO related
 [2021-08-09 11:32 UTC]
-Status: Open +Status: Suspended
 [2021-08-09 11:32 UTC]
> Will see how it goes :)

Apparently, it did not, and someone would need to pursue the RFC
process[1].  For the time being, I suspend this ticket.

[1] <>
PHP Copyright © 2001-2021 The PHP Group
All rights reserved.
Last updated: Sun Oct 17 07:03:33 2021 UTC