Informix 平台用于 Doctrine DBAL

v1.0.0 2016-01-10 18:34 UTC

This package is not auto-updated.

Last update: 2024-09-23 06:21:45 UTC


README

No Maintenance Intended

已弃用:Informix 平台用于 Doctrine DBAL

Informix 平台用于 Doctrine DBAL 为 Informix 提供了对 Doctrine\DBAL 数据库抽象层的支持,它是 Doctrine 项目 的数据库抽象层。

支持的 DBAL 版本

支持的 Informix 版本

在 Informix Dynamic Server 版本 11.70 和 12.10 上进行了测试(目前尚未在 11.50 上进行测试,但应该仍然可以使用)。

安装

如果您还没有安装 PHP 的 PDO_INFORMIX 扩展,则需要安装它(请参阅 PDO_INFORMIX),在继续之前确保该扩展正常工作,您可以使用以下示例快速连接到您的 Informix 服务器

    <?php

    $dsn = 'informix:'
        . 'host=hosttest1;'
        . 'server=test1tcp;'
        . 'database=test_database;'
        . 'protocol=onsoctcp;'
        . 'service=50000;';

    $user = 'your_user';
    $password = 'your_password';

    $con = new PDO($dsn, $user, $password);

    if ($con) {
      echo "The connection was successfully established\n";
    }

您还需要 composer 来安装所有依赖项,如果您还没有安装它,请先安装。

从仓库安装

下载 Informix 平台用于 Doctrine DBAL 的代码或使用 git 克隆它 git clone https://github.com/josemalonsom/Ifx4dd.git。移动到包含源代码的目录,并使用 composer 安装依赖项

    $ cd Ifx4dd/
    $ composer install

它将在 vendor 目录下安装 Doctrine\DBAL,并创建一个在 vendor/autoload.php 文件中可以找到的自动加载类。自动加载器将首先添加 Informix 平台目录,这样您就可以使用 DBAL 类的一些特定版本的 Informix 平台。

使用 composer 安装

只需执行

    composer require "josemalonsom/ifx4dd:dev-master"

它将在 vendor 目录下安装库。

与 Informix 建立连接

如果您没有使用 DBAL 的经验,请先阅读其文档 Doctrine\DBAL 文档

要创建连接,您可以使用 Informix 平台附带的修改版 DriverManager 或使用 Doctrine\DBAL 的原始 DriverManager 类,在后一种情况下,您需要指定要使用的驱动类。

使用修改版的 DriverManager 创建连接

Ifx4dd 附带了一个修改版的 DriverManager 类,它将 pdo_informix 添加为可使用的驱动之一。

在这种情况下,您需要告诉 composer 首先加载来自 ifx4dd 目录树的类(如果您通过 ifx4dd 中的 composer.json 安装了 ifx4dd,则不需要此操作,因为 ifx4dd 目录已添加到自动加载器中)。

    <?php

    // Gets the autoloader
    $classLoader = require_once 'vendor/autoload.php';

    // Adds the ifx4dd directory in first place to the
    // Doctrine\DBAL namespace
    $classLoader->add(
        'Doctrine\\DBAL\\',
        'vendor/josemalonsom/ifx4dd/lib',
        true
    );

    use Doctrine\DBAL\DriverManager;

    $connectionParams = array(
        'driver'       => 'pdo_informix',
        'host'         => 'hosttest1',
        'port'         => '50000',
        'protocol'     => 'onsoctcp',
        'server'       => 'test1tcp',
        'dbname'       => 'test_database',
        'user'         => 'user',
        'password'     => 'password',
    );

    $connection = DriverManager::getConnection($connectionParams);

使用原始 DriverManager 创建连接

如果您想使用 DBAL 附带的 'Doctrine\DBAL\DriverManager' 类,您需要在连接参数中指定要使用的驱动类,如下例所示

    <?php

    require_once 'vendor/autoload.php';

    use Doctrine\DBAL\DriverManager;

    $connectionParams = array(
        'driverClass'  => '\Doctrine\DBAL\Driver\PDOInformix\Driver',
        'host'         => 'hosttest1',
        'port'         => '50000',
        'protocol'     => 'onsoctcp',
        'server'       => 'test1tcp',
        'dbname'       => 'test_database',
        'user'         => 'user',
        'password'     => 'password',
    );

    $connection = DriverManager::getConnection($connectionParams);

使用 URL 创建连接

从 DBAL 2.5 版本开始,可以使用 URL 来创建连接(请注意,在这种情况下,您必须使用 ifx4dd DriverManager 版本)。

    <?php

    $classLoader = require_once 'vendor/autoload.php';

    $classLoader->add(
        'Doctrine\\DBAL\\',
        'vendor/josemalonsom/ifx4dd/lib',
        true
    );

    use Doctrine\DBAL\DriverManager;

    $connection = DriverManager::getConnection(array(
        'url' => 'informix://user:password@hosttest1:50000/test_database?protocol=onsoctcp&server=test1tcp'
    ));

请参阅 DBAL 文档以获取更多信息:https://github.com/doctrine/dbal/blob/2.5/docs/en/reference/configuration.rst

分隔标识符

DBAL使用定界符标识符,因此您需要在您的Informix环境中启用它,请参阅启用定界符标识符

其他文档