如何在不修改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