安装和配置¶
YII 当前有两个主要版本:1.1 和 2.0。 安装 YII 神通方言也分为两个版本安装。
安装要求¶
PHP 版本要求:PHP5.3-5.6, PHP7.0-7.2, PHP7.3, PHP7.4, PHP8.0
警告
YII 1.1 要求 PHP 5.1.0 或更高版本, YII 2 要求 PHP 5.4.0 或以上版本。
因为神通方言版 YII 依赖 PDO_ACI 驱动,而目前神通 PDO_ACI 支持的 PHP 版本为 PHP5.3-5.6 和 PHP7.0-7.2, PHP7.3, PHP7.4, PHP8.0, 所以目前神通方言版 YII 支持的 PHP 版本要与 PDO_ACI 一致。
PDO_ACI 验证¶
安装神通方言 YII 之前,先检查 PDO_ACI 是否已加载到当前的 PHP 运行时环境中。
执行命令 php -m | grep PDO_ACI,
如果输出项查询到 PDO_ACI,那么当前PHP运行时已加载 PDO_ACI;
否则需要正确加载 PDO_ACI 扩展库。
root@deb10:~# php -m | grep PDO_ACI
PHP Warning: Module 'PDO_ACI' already loaded in Unknown on line 0
Warning: Module 'PDO_ACI' already loaded in Unknown on line 0
PDO_ACI
加载 PDO_ACI 扩展库详细内容请参考 PDO_ACI 开发手册 -> 安装与配置
YII 1.1 安装¶
安装配置¶
为了让 YII 框架支持神通数据库驱动,需要作必要的配置和源文件拷贝.
在文件 framework/YiiBase.php 内追加一下内容
private static $_coreClasses=array(
...
// 追加下面代码
'CAciColumnSchema' => '/db/schema/aci/CAciColumnSchema.php',
'CAciCommandBuilder' => '/db/schema/aci/CAciCommandBuilder.php',
'CAciSchema' => '/db/schema/aci/CAciSchema.php',
'CAciTableSchema' => '/db/schema/aci/CAciTableSchema.php',
);
拷贝YII1.1目录下 aci 目录到项目目录 framework/db/schema/ 下
cp -r aci framework/db/schema/
YII1.1 神通方言文件内容如下
yii1.1/
├── aci
│ ├── CAciColumnSchema.php
│ ├── CAciCommandBuilder.php
│ ├── CAciSchema.php
│ └── CAciTableSchema.php
├── README.md
└── test
├── activerecord.php
├── connect.php
├── querybuilder.php
└── query.php
2 directories, 9 files
连接配置信息
在项目配置文件中配置连接信息
'db'=>array(
'connectionString' => 'aci:dbname=127.0.0.1:2003/osrdb',
'username' => 'sysdba',
'password' => '',
),
可以创建一个连接 Connection
$dsn = "aci:dbname=127.0.0.1:2003/osrdb";
$username = "sysdba";
$password = "szoscar55";
$connection=new CDbConnection($dsn,$username,$password);
$connection->active=true;
YII 2 安装¶
安装配置¶
为了让 YII 框架支持神通数据库驱动,需要作必要的配置和源文件拷贝.
在文件 vendor/yiisoft/yii2/classes.php 下追加以下内容
return [
...
// 追加下面代码
'yii\db\aci\ColumnSchemaBuilder' => YII2_PATH . '/db/aci/ColumnSchemaBuilder.php',
'yii\db\aci\Command' => YII2_PATH . '/db/aci/Command.php',
'yii\db\aci\QueryBuilder' => YII2_PATH . '/db/aci/QueryBuilder.php',
'yii\db\aci\Schema' => YII2_PATH . '/db/aci/Schema.php',
'yii\db\aci\conditions\InConditionBuilder' => YII2_PATH . '/db/aci/conditions/InConditionBuilder.php',
'yii\db\aci\conditions\LikeConditionBuilder' => YII2_PATH . '/db/aci/conditions/LikeConditionBuilder.php',
];
在文件 vendor/yiisoft/yii2/db/Connection.php 下追加以下内容
public $schemaMap = [
... //省略
// 追加该行代码
'aci' => 'yii\db\aci\Schema', // Oscar driver
];
public $commandMap = [
... //省略
// 追加该行代码
'aci' => 'yii\db\aci\Command', // Oscar driver
];
拷贝神通方言 YII2 目录下 aci 目录到项目目录 vendor/yiisoft/yii2/db/ 下
cp -r aci vendor/yiisoft/yii2/db/
神通方言 YII2 文件内容如下
yii2/
├── aci
│ ├── ColumnSchemaBuilder.php
│ ├── Command.php
│ ├── conditions
│ │ ├── InConditionBuilder.php
│ │ └── LikeConditionBuilder.php
│ ├── QueryBuilder.php
│ └── Schema.php
├── README.md
└── test
├── connect.php
├── pdo.php
├── querybuilder.php
├── query.php
├── seq.php
├── sql.sql
└── table.php
3 directories, 14 files
连接配置信息
在项目配置文件中配置db.php 连接信息
return [
'class' => 'yii\db\Connection',
'dsn' => 'aci:dbname=127.0.0.1:2003/osrdb',
'username' => 'sysdba',
'password' => 'szoscar55',
'charset' => 'utf8',
...
];
接下来可以创建一个连接 Connection
$connection = new \yii\db\Connection([
'dsn' => 'aci:dbname=127.0.0.1:2003/osrdb',
'username' => 'sysdba',
'password' => 'szoscar55',
'charset' => 'utf8',
]);
$connection->open();