thinkphp5如何優雅的配置多個數據庫?

最近在用tp5寫項目,有一個業務上的需求,需要連接兩個數據庫。這就需要在tp5中配置兩個數據庫了。

該怎麼配置多個數據庫呢?

查看開發手冊 。這當然是一句廢話,快速開發的第一要素就是查看手冊。手冊有提供了豐富多數據配置的方法,參考鏈接在文章結尾處,不多此一舉雷述了。

但手冊的方法會發現多個數據配置方式過於混亂,顯得不夠優雅。有一個專門配置數據庫的文件database.php文件,但這個文件只能配置一個數據庫信息,其他的數據庫卻要寫在config.php這個應用配置文件上,這就有點亂了,並且config.php操作更改的頻率是比較大,而數據庫配置之後一般都不會改動,直接將數據庫信息配置在config.php上不是一個明智之舉。

那麼該怎麼配置,會顯得好管理些呢?

重新起一個數據庫配置文件,命名database2.php,然後再config.php讀這個文件。這樣數據庫配置信息就不用直接塞到config.php中,對數據配置信息相對獨立,避免對數據庫信息誤操作。

看項目配置截圖:

database.php

比起直接在一堆數據庫配置寫到config.php是不是優雅很多了,邏輯上也清晰很多。

舉一反三

從上述方法我們完全可以根據邏輯或者業務的需求來自定義配置文件,從而實現對配置文件有一個更好管理。

【參考】thinkphp多數據庫的配置:https://www.kancloud.cn/manual/thinkphp5/118059;

 


==================== SQLServer多庫切換(這個是在博客上看到的,親試有用,分享給大家) ===========================

1、首先要連接上你的SQLServer;

2、將你配置好的database.php 文件複製一份,命名爲 database2.php,並寫入第二個數據庫的配置;

3、在你的config.php文件中先引入 database2.php 文件(代碼: $db_con2 = require_once('database2.php'); ),並在最後加上 'db_con2' => $db_con2, 

4、控制器裏面就可以使用了
如:
$db = Db::connect('db_con2');
$db->query('select * from user');

(PS :附件裏面是PHP的擴展,n2裏面是php5的,n1裏面是php7的,大家根據需要選擇)
+++++++++++++++++ the end ++++++++++++++++++++

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章