<- v5:userguide:learn_extensions:new_driver|Creating A New Driver ^ v5:userguide:userguide_index|User Guide ^ -> ~~NOTOC~~ ====== Extending An Existing Driver ====== You might want to modify ADOdb for your own purposes. Luckily you can still maintain backward compatibility by sub-classing ADOdb and using the ''$ADODB_NEWCONNECTION'' variable. ''$ADODB_NEWCONNECTION'' allows you to override the behaviour of ADONewConnection(). ADOConnection() checks for this variable and will call the function-name stored in this variable if it is defined. In the following example, new functionality for the connection object is placed in the _hack_mysql_ and _hack_postgres7_ classes. The recordset class naming convention can be controlled using $rsPrefix. Here we set it to 'hack_rs_', which will make ADOdb use _hack_rs_mysql_ and _hack_rs_postgres7_ as the recordset classes. class hack_mysql extends adodb_mysql { var $rsPrefix = 'hack_rs_';   /* Your mods here */ } class hack_rs_mysql extends ADORecordSet_mysql {  /* Your mods here */ } class hack_postgres7 extends adodb_postgres7 { var $rsPrefix = 'hack_rs_';   /* Your mods here */ } class hack_rs_postgres7 extends ADORecordSet_postgres7 {  /* Your mods here */ } $ADODB_NEWCONNECTION = 'hack_factory'; function& hack_factory($driver) {          if ($driver !== 'mysql' && $driver !== 'postgres7') return false;                   $driver = 'hack_'.$driver;          $obj = new $driver();          return $obj; } include_once('adodb.inc.php'); **End Of Lesson 10**