php.net |  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: 2017-10-24 08:32 UTC
From: aljosha dot papsch at vinexus dot eu Assigned:
Status: Open Package: PDO related
PHP Version: Irrelevant OS:
Private report: No CVE-ID: None
Have you experienced this issue?
Rate the importance of this bug to you:

 [2017-07-20 13:34 UTC] aljosha dot papsch at vinexus dot eu
Description:
------------
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.


Patches

Add a Patch

Pull Requests

Pull requests:

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2017-07-20 14:07 UTC] adambaratz@php.net
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:
https://wiki.php.net/rfc/howto
 [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:

https://github.com/php/php-src/pull/2657
http://news.php.net/php.internals/100067

Will see how it goes :)
 [2017-10-24 08:32 UTC] kalle@php.net
-Package: PDO Core +Package: PDO related
 
PHP Copyright © 2001-2017 The PHP Group
All rights reserved.
Last updated: Sun Nov 19 01:31:42 2017 UTC