alanseiden/doctrine-dbal-ibmi

IBM i 平台上DB2的Doctrine DBAL驱动程序

0.0.8 2021-10-13 15:14 UTC

README

Lint Quality assurance Build and test

IBM i平台上的Doctrine DBAL驱动程序。

基于@cassvaildoctrine/dbal#910中的原始工作。

使用方法

首先使用Composer进行安装

composer require alanseiden/doctrine-dbal-ibmi

配置

此包提供2个驱动程序:OdbcDriverDB2Driver

OdbcDriver需要pdo_odbc扩展,这是推荐的驱动程序。

DB2Driver需要ibm_db2扩展,不推荐用于新的连接。

可以使用Doctrine DBAL文档中描述的说明进行配置。

<?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);

示例

Doctrine ORM

您可以手动配置一个EntityManager,如下所示

<?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);

然后您可以使用这个\Doctrine\ORM\EntityManager实例。

Zend Expressive

在您的连接配置中,配置Zend Expressive应用程序时使用这些设置

<?php

use DoctrineDbalIbmi\Driver\OdbcDriver;

return [
    'doctrine' => [
        'connection' => [
            'orm_default' => [
                'driverClass' => OdbcDriver::class,
                'params' => [
                    'host' => 'localhost',
                    'dbname' => 'mydb',
                    'user' => 'user',
                    'password' => 'secret',
                    'persistent' => false,
                ],
            ],
        ],
    ],
];