Home > front end >  Register class as PDO driver
Register class as PDO driver

Time:12-03

Can I somehow register php class as PDO driver?

To clarify my question. PDO driver works with dsn (for example mysql:host=localhost;dbname=test) where first part is which driver to use. In this example it is mysql and therefore it uses php extension pdo_mysql. Can I register new driver from php pointing on class?

Something like this:

PDO::registerDriver('foo', \Foo::class); // I know this does not exists and I'm asking if there is some way to do this
print_r(PDO::getAvailableDrivers());

// outputs: Array( [0] => mysql, [1] => foo )

I know I can extend and override php PDO and PDOStatement classes, but that is not what I'm asking.

I was looking into php source code but I'm not familiar with C/C . Here is a link for function PDO::getAvailableDrivers if somebody is interested.

CodePudding user response:

No, it is not possible to register a PHP class as a PDO driver. PDO drivers are typically implemented as extensions written in C/C and compiled into PHP, not as PHP classes. PDO drivers must also be registered as extensions in the PHP configuration file (php.ini) in order to be available for use with PDO. There is no built-in mechanism for registering a PHP class as a PDO driver.

  • Related