如何在不修改Doctrine2內核中的DriverManager.php的情況下添加自定義驅動程序?Doctrine 2 - 如何添加自定義DBAL驅動程序?
我爲pdo_dblib
創建了一個DBAL驅動程序,並將它放在Symfony2包中。這工作得很好,但我必須將驅動程序添加到DriverManager.php硬編碼驅動程序的列表,否則我得到以下異常:
異常
[Doctrine\DBAL\DBALException]
The given 'driver' pdo_dblib is unknown, Doctrine currently supports only the following drivers: pdo_mysql, pdo_sqlite, pdo_pgsql, pdo_oci, oci8, ibm_db2, pdo_ibm, pdo_sqlsrv
除非我修改DriverManager.php
final class DriverManager
{
private static $_driverMap = array(
'pdo_dblib' => 'Doctrine\DBAL\Driver\PDODblib\Driver', // Added this line
);
}
這裏是我的config.yml:
# Doctrine Configuration
doctrine:
dbal:
driver: pdo_dblib
driver_class: PDODblibBundle\Doctrine\DBAL\Driver\PDODblib\Driver
你可以分享你PDODblib文件夾中我遇到這個問題藏漢,也沒有你設法找到一種方法來添加自定義驅動程序而不修改核心? – Matt
我還沒有找到添加驅動程序而不修改Doctrine2核心的方法。不過你可以看看這個Bundle:http://github.com/trooney/PDODblibBundle – rooney
對於任何人走這條路:有沒有應用提交PHP svn add lastInsertId和事務支持到pdo_dblib驅動程序。請參閱http://svn.php.net/viewvc/php/php-src/trunk/ext/pdo_dblib/dblib_driver.c?view=log(rev。300647和300647) – rooney