doctrine-dbal-ibmi
, (*1)
Doctrine DBAL
drivers for DB2 on the IBM i platform., (*2)
Based on the original work by @cassvail in doctrine/dbal#910., (*3)
Usage
First, install with Composer:, (*4)
composer require alanseiden/doctrine-dbal-ibmi
Configuration
This package provides 2 drivers: OdbcDriver and DB2Driver., (*5)
OdbcDriver requires the pdo_odbc
extension, and is the recommended driver., (*6)
DB2Driver requires the ibm_db2 extension, and is not recommended for
new connections., (*7)
These drivers can be configured using the instructions described in the Doctrine DBAL docs., (*8)
<?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:, (*9)
<?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., (*10)
Zend Expressive
In your connection configuration, use these settings when configuring a Zend Expressive application:, (*11)
<?php
use DoctrineDbalIbmi\Driver\OdbcDriver;
return [
'doctrine' => [
'connection' => [
'orm_default' => [
'driverClass' => OdbcDriver::class,
'params' => [
'host' => 'localhost',
'dbname' => 'mydb',
'user' => 'user',
'password' => 'secret',
'persistent' => false,
],
],
],
],
];