Как я могу обнаружить установленные драйверы MDB2 в PHP?
Я пытаюсь определить, какие драйверы MDB2 установлены. Таким образом, я могу использовать все, что установлено пользователем. Я пытался использовать class_exists("MDB2_Driver_$driver", FALSE) или (@include_once("MDB2/Driver/$driver.php")), это не работает. (первый возвращает FALSE для всех драйверов, второй сбой для существующих драйверов)
Есть идеи, как это сделать? Кажется, что MDB2 не включает никаких методов для этого.
1 ответ
Если они установлены через PEAR, следующий код поможет. Он работает путем запроса реестра PEAR, чтобы определить, были ли установлены пакеты драйверов. Также будет отображена версия каждого из этих драйверов.
require 'PEAR/Registry.php';
$reg = new PEAR_Registry;
$drivers = array (
'MDB2_Driver_fbsql',
'MDB2_Driver_ibase',
'MDB2_Driver_mssql',
'MDB2_Driver_mysql',
'MDB2_Driver_mysqli',
'MDB2_Driver_oci8',
'MDB2_Driver_odbc',
'MDB2_Driver_pgsql',
'MDB2_Driver_querysim',
'MDB2_Driver_sqlite',
'MDB2_Driver_sqlsrv',
);
foreach ($drivers as $driver) {
$pkg = $reg->getPackage($driver);
if (!is_null($pkg)) {
$version = $pkg->getVersion();
echo "$driver v$version installed\n";
}
}
Это основано на фрагменте кода, который я разместил на https://gist.github.com/kenguest/1671361 прошлом году.