. */ namespace Doctrine\DBAL\Driver\IbmDb2; use Doctrine\DBAL\Driver, Doctrine\DBAL\Connection; /** * IBM Db2 Driver * * @license http://www.opensource.org/licenses/lgpl-license.php LGPL * @link www.doctrine-project.com * @since 1.0 * @version $Revision$ * @author Benjamin Eberlei */ class Db2Driver implements Driver { /** * Attempts to create a connection with the database. * * @param array $params All connection parameters passed by the user. * @param string $username The username to use when connecting. * @param string $password The password to use when connecting. * @param array $driverOptions The driver options to use when connecting. * @return Doctrine\DBAL\Driver\Connection The database connection. */ public function connect(array $params, $username = null, $password = null, array $driverOptions = array()) { if ($params['host'] !== 'localhost' && $params['host'] != '127.0.0.1') { // if the host isn't localhost, use extended connection params $dbname = 'DRIVER={IBM DB2 ODBC DRIVER}' . ';DATABASE=' . $params['dbname'] . ';HOSTNAME=' . $params['host'] . ';PORT=' . $params['port'] . ';PROTOCOL=' . $params['protocol'] . ';UID=' . $username . ';PWD=' . $password .';'; $username = null; $password = null; } else { $dbname = $params['dbname']; } $isPersistant = (isset($params['persistent']) && $params['persistent'] == true); return new Db2Connection($dbname, $username, $password, $driverOptions, $isPersistant); } /** * Gets the DatabasePlatform instance that provides all the metadata about * the platform this driver connects to. * * @return Doctrine\DBAL\Platforms\AbstractPlatform The database platform. */ public function getDatabasePlatform() { return new \Doctrine\DBAL\Platforms\IbmDb2Platform; } /** * Gets the SchemaManager that can be used to inspect and change the underlying * database schema of the platform this driver connects to. * * @param Doctrine\DBAL\Connection $conn * @return Doctrine\DBAL\SchemaManager */ public function getSchemaManager(Connection $conn) { return new \Doctrine\DBAL\Schema\IbmDb2SchemaManager($conn); } /** * Gets the name of the driver. * * @return string The name of the driver. */ public function getName() { return 'ibm_db2'; } /** * Get the name of the database connected to for this driver. * * @param Doctrine\DBAL\Connection $conn * @return string $database */ public function getDatabase(\Doctrine\DBAL\Connection $conn) { $params = $conn->getParams(); return $params['dbname']; } }