pan-roman / ifx4dd-plus
Informix Platform for 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-29 05:01:38 UTC
README
Informix Platform for Doctrine DBAL 为 Doctrine 的数据库抽象层 Doctrine\DBAL 提供了对 Informix 的支持。
支持的 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 Platform for Doctrine DBAL 的代码或使用 git 进行克隆 git clone https://github.com/josemalonsom/Ifx4dd.git
。移动到您有源代码的目录,并使用 composer 安装依赖项
$ cd Ifx4dd/
$ composer install
它将在 vendor 目录下安装 Doctrine\DBAL,并创建一个 autoloader 类,您可以在 vendor/autoload.php 文件中找到它。autoloader 将首先添加 Informix Platform 目录,这样您就可以使用 DBAL 类的 Informix Platform 特定版本。
使用 composer 安装
简单地执行
composer require "josemalonsom/ifx4dd:dev-master"
它将在 vendor
目录下安装库。
与 Informix 建立连接
如果您没有 DBAL 的经验,请首先阅读其文档 Doctrine\DBAL 文档
要创建连接,您可以使用与 Informix Platform 一起提供的 Doctrine\DBAL DriverManager 的修改版本,或者您可以使用 Doctrine\DBAL 的原始 DriverManager 类,在这种情况下,您需要在连接参数中指定要使用的驱动类。
使用修改后的 DriverManager 创建连接
Ifx4dd 伴随一个修改过的 DriverManager 类,该类将 pdo_informix
添加为可用的驱动之一。
在这种情况下,您需要告诉 composer
首先加载 ifx4dd 目录树中的类(如果您已通过 ifx4dd 的 composer.json 安装 ifx4dd,则不需要此操作,因为 ifx4dd 目录已添加到 autoloader 中)。
<?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', 'db_locale' => 'ru_RU.1251', // optional 'client_locale' => 'ru_RU.1251', // optional ); $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', 'db_locale' => 'ru_RU.1251', // optional 'client_locale' => 'ru_RU.1251', // optional ); $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 环境中启用它,请参阅 启用分隔标识符。