52 lines
3.0 KiB
Markdown
52 lines
3.0 KiB
Markdown
# 连接其他数据库
|
||
|
||
如果项目原有已经有数据库,或者在使用Pro开发过程中需要连接其他数据库,可按本教程进行开发。
|
||
|
||
## 第1步:添加其他数据库配置
|
||
修改数据库配置文件```./config/db_plus.php```,修改里面的数据库连接配置。例如:
|
||
```php
|
||
'servers' => array(
|
||
'db_master' => array( // 服务器标记
|
||
'type' => 'mysql', // TODO: 数据库类型,暂时只支持:mysql, sqlserver
|
||
'host' => '127.0.0.1', // TODO: 数据库域名
|
||
'name' => 'phalapi_pro', // TODO: 数据库名字
|
||
'user' => 'root', // TODO: 数据库用户名
|
||
'password' => '', // TODO: 数据库密码
|
||
'port' => 3306, // 数据库端口
|
||
'charset' => 'utf8mb4', // 数据库字符集 utf8mb4或utf8
|
||
'pdo_attr_string' => false, // 数据库查询结果统一使用字符串,true是,false否
|
||
'driver_options' => array( // PDO初始化时的连接选项配置
|
||
// 若需要更多配置,请参考官方文档:https://www.php.net/manual/zh/pdo.constants.php
|
||
),
|
||
),
|
||
),
|
||
```
|
||
> 关于数据库的配置,可参考数据库连接文档:http://docs.phalapi.net/#/v2.0/database-connect
|
||
|
||
## 第2步:在di服务中注册新数据库NotORM
|
||
请修改DI注册文件```./config/di.php```,去掉以下代码的注释,注册并开启```$di->notorm_plus```服务。
|
||
```php
|
||
// 连接其他数据库(或项目原有的数据库,需要时去掉注释)
|
||
// $di->notorm_plus = new NotORMDatabase($di->config->get('dbs_plus'), $di->config->get('sys.notorm_debug'));
|
||
```
|
||
|
||
## 第3步:实现Model基类,切换数据库
|
||
此步骤,默认已经实现,可参考代码:```./src/base/Model/PlusBase.php```。如果需要连接第3个数据库或更多,可将此文件复制一份,作相应修改。
|
||
|
||
## 第4步:开发Model子类,实现你的业务逻辑
|
||
在完成前面配置后,最后一步,便可以开始开发你的业务逻辑,连接或操作其他数据库。此时,新加的Model子类,如果是操作新增的数据库,则需要继承于```Base\Model\PlusBase```基类。例如:
|
||
```php
|
||
<?php
|
||
namespace App\Model\Plus;
|
||
|
||
use Base\Model\PlusBase;
|
||
|
||
class Comment extends PlusBase {
|
||
// 实现具体的数据库操作
|
||
}
|
||
```
|
||
|
||
> 温馨提示:为了将不同数据库的Model代码文件分开管理,推荐对于不同的数据库,在./src/app/Model目录下创建相应的子目录,分开管理和维护。例如上面放置在./src/app/Model/Plus目录。
|
||
|
||
更多帮助说明,请参考开源版[支持任意多个不同数据库](http://docs.phalapi.net/#/v2.0/database-other?id=%e5%a4%8d%e6%9d%82%e6%96%b9%e6%a1%88%ef%bc%9a%e6%94%af%e6%8c%81%e4%bb%bb%e6%84%8f%e5%a4%9a%e4%b8%aa%e4%b8%8d%e5%90%8c%e6%95%b0%e6%8d%ae%e5%ba%93)。
|