Table of Contents
List of Drivers To Be Removed / Merged
Full Removal
Driver | Driver / Children | Reason |
---|---|---|
ADO | ado, ado_access, ado_mssql, ado5 | Obsolete |
Frontbase | fbsql | No PHP drivers since V4 |
IBM Informix | informix, informix_72 | Database End-Of-Life / No PHP 7 Drivers |
mysqlt | mysqlt, mysqlpo | Superseded by mysqli |
mssql | mssql, mssql_n, mssqlpo | Driver End Of Life / No PHP7 drivers |
Netezza | netezza | Database End-Of-Life 2019 |
ODBTP | odbtp, odbtp_unicode | Obsolete |
Plain Text | text | Incompatible with later versions of PHP |
Proxy | proxy | Deprecated for security reasons, as of ADOdb 5.21.0 |
SAP ADS | ads | Database End-Of-Life / No PHP 7 Drivers |
SAP ASE | sybase, sybase_ase | Database End-Of-Life / No PHP 7 Drivers |
SAP MaxDB | sapdb | Database End-Of-Life / No PHP 7 Drivers |
SAP SQL Anywhere | sqlanywhere | Dormant / No Active Users |
Visual FoxPro | vfp | Obsolete |
Occasionally renewed interest in a database may result in a driver being reactivated
Partial Removal
Driver | Children | Reason |
---|---|---|
IBM_DB2 | db2ora, db2oci | Feature handled in rewritten main driver. Use param() for parametisation |
oci805 | oci805 | Written specifically for now obsolete version of oracle |
oci8po | oci8po | Should be able to roll the minor differences in this driver into the main one |
oracle | oracle | Obsolete database version |
mssql2012ODBC mssql2012 | odbc_mssql2012 | Make the extended feature of this driver the default in the parent |
SQLite Database | sqlite3 | merge current version back to sqlite |
PostgreSQL | postgres64, postgres7, postgres8, postgres9 | Merge all versions back to postgres |
PDO mssql | mssql | Obsolete driver |
Remaining
Old Name | New Name | Children |
---|---|---|
access | access | |
db2 | db2 | |
firebird | firebird | |
ldap | ldap | |
mssqlnative | sqlserver | |
mysqli | mysql | |
oci8 | oracle | |
odbc | odbc | db2, mssql, oracle |
pdo | pdo | dblib, firebird, mysql, oci8→oracle. pgsql, sqlite, slsrv |
postgres9 | postgres | |
sqlite3 | sqlite |
The thing about the PDO driver
Take, for example, pdo_mysql. This driver is really just the mysql driver. It doesn't really have anything to do with PDO. This is the same for all the PDO drivers.
If you were going to make the drivers loadable classes, it would make no sense to have these as extensions of PDO, they should be an extension of the native driver so that they all have access to the already written methods in the native driver.
How to link them to the base driver I have no idea.
LDAP Driver
Isn't really the same thing as all the others. It's useful, but doesnt really fit in with the others. Maybe we should break it off to its own directory or something.
ociquercus
This seems to have a lot of complicated cursor stuff in it. I think John was a bit of an oracle hacker. would be a shame to lose it but not quite sure what to do with it
Directory Structure
I think we should break a lot of stuff away from the main directory, perhaps it could match a namespace or something?
\adodb \adodb\adodb \adodb\adodb\drivers \adodb\adodb\datadict \adodb\adodb\perf \adodb\adodb\xmlschema \adodb\adodb\memcache \adodb\adodb\errors \adodb\adodb\lang \adodb\session \adodb\activerecord \adodb\time \adodb\other - everything else in subdirectories
This would empty the main directory
Functions in adodb-lib.inc.php
There are a lot of functions in this file, for eaxample _adodb_column_sql()
. I've never understood why these are functions and not part of the class. I think we should make them class functions, and if necessary, create some kind of helper functions that calls them. so:
function _adodb_column_sql(&$zthis .. becomes ADOconnection::adodbColumnSql