josemalonsom / ifx4dd
Informix 平台用于 Doctrine DBAL
Requires
- ext-pdo_informix: >=1.3.1
- doctrine/dbal: ~2.5.2
Requires (Dev)
- ext-pdo_sqlite: *
- phpunit/phpunit: 4.*
This package is not auto-updated.
Last update: 2024-09-23 06:21:45 UTC
README
已弃用: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环境中启用它,请参阅启用定界符标识符。