alanseiden / doctrine-dbal-ibmi
Doctrine DBAL drivers for DB2 on the IBM i platform
Requires
- php: ^5.6|^7.0|^7.1
- doctrine/dbal: ^2.5
Requires (Dev)
- doctrine/orm: ^2.0.0
- phpunit/phpunit: ^5.6
This package is not auto-updated.
Last update: 2024-10-24 05:50:58 UTC
README
Doctrine DBAL drivers for DB2 on the IBM i platform.
Based on the original work by @cassvail in doctrine/dbal#910.
Usage
First, install with Composer:
composer require alanseiden/doctrine-dbal-ibmi
Configuration
This package provides 2 drivers: OdbcDriver
and DB2Driver
.
OdbcDriver
requires the pdo_odbc
extension, and is the recommended driver.
DB2Driver
requires the ibm_db2
extension, and is not recommended for
new connections.
These drivers can be configured using the instructions described in the Doctrine DBAL docs.
<?php use Doctrine\DBAL\DriverManager; use DoctrineDbalIbmi\Driver\OdbcDriver; $connectionParams = [ 'driverClass' => OdbcDriver::class, 'host' => 'localhost', 'dbname' => 'mydb', 'user' => 'user', 'password' => 'secret', ]; $conn = DriverManager::getConnection($connectionParams);
Examples
Doctrine ORM
You can manually configure an EntityManager
like so:
<?php use Doctrine\ORM\EntityManager; use Doctrine\ORM\Tools\Setup; use DoctrineDbalIbmi\Driver\OdbcDriver; $configuration = Setup::createAnnotationMetadataConfiguration([ __DIR__ . '/../path/to/your/entities/', ], true); $connection = [ 'driverClass' => OdbcDriver::class, 'host' => 'localhost', 'dbname' => 'mydb', 'user' => 'user', 'password' => 'secret', 'persistent' => false, ]; $entityManager = EntityManager::create($connection, $configuration);
You can then use this instance of \Doctrine\ORM\EntityManager
.
Zend Expressive
In your connection configuration, use these settings when configuring a Zend Expressive application:
<?php use DoctrineDbalIbmi\Driver\OdbcDriver; return [ 'doctrine' => [ 'connection' => [ 'orm_default' => [ 'driverClass' => OdbcDriver::class, 'params' => [ 'host' => 'localhost', 'dbname' => 'mydb', 'user' => 'user', 'password' => 'secret', 'persistent' => false, ], ], ], ], ];