ADOdb

Database Abstraction Layer for PHP

User Tools

Site Tools


v5:userguide:learn_extensions:new_driver

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
v5:userguide:learn_extensions:new_driver [2020/01/15 03:35] – [Creating A New Driver] mnewnhamv5:userguide:learn_extensions:new_driver [2020/01/15 04:13] (current) mnewnham
Line 55: Line 55:
 </code> </code>
  
-So the class extends the connector, but much of the MySQL specific functionality is found in the **//provider//** (**drivers/adodb-mysql.inc.php**). So if we wanted, for example, to create a new driver //**mydriver**// that did not directly extend an existing class, but shared much of the feature with say, the [[v5:database:sql_server|mssqlnative]] class, our code might look like:+So the class extends the connector, but much of the MySQL specific functionality is found in the **//provider//** (**drivers/adodb-mysql.inc.php**). The **provider** is effectively a parallel class. So if we wanted, for example, to create a new driver //**mydriver**// that did not directly extend an existing class, but shared much of the feature with say, the [[v5:database:microsoft_sql_server|mssqlnative]] class, our code might look like:
  
 <code php> <code php>
Line 63: Line 63:
  
 </code> </code>
 +===== Base Level Classes =====
 +If we look at say, the [[v5:database:microsoft_sql_server|mssqlnative]] class, (**drivers/adodb-mssqlnative.inc.php**). we see the following:
  
 +<code php>
 +class ADODB_mssqlnative extends ADOConnection {
 + var $databaseType = 'mssqlnative';
 + var $dataProvider = 'mssqlnative';
 +
 +</code>
 +
 +In this case, the **$databaseType** and the **$dataProvider** are the same. This means that all of the functionality of the driver is provided by the named driver (**drivers/adodb-mssqlnative.inc.php**) and datadict (**datadict/datadict-mssqlnative.inc.php**) files .
 +
 +===== Using Provider Classes =====
 +Data Provider classes are designed exactly the same as database driver classes. Where the provider class is different from the database class, the provider class is generally associated with an obsolete database version, often 15-20 years old. As such, they cannot be used as drivers.
  
v5/userguide/learn_extensions/new_driver.1579055705.txt.gz · Last modified: 2020/01/15 03:35 by mnewnham