EasySwoole 使用*.ini格式的配置文件

EasySwoole 使用*.ini格式的配置文件

簡介

本文章帶領(lǐng)大家學(xué)習(xí)如何在EasySwoole使用ini格式的配置文件菩咨。

ini的優(yōu)缺點

優(yōu)點:線性的吠式、簡單陡厘、簡練抽米、方便

缺點:復(fù)雜類型的數(shù)據(jù)配置無力

目錄結(jié)構(gòu)

.
├── App
│   ├── HttpController
│   │   └── Productor.php
│   ├── Process
│   │   └── Consumer.php
│   └── Resource
│       └── RedisPool.php
├── Config
│   └── Ini
│       ├── database.ini
│       └── redis.ini
├── EasySwooleEvent.php
├── Ini
│   └── src
│       └── Ini.php
xxx

Ini包源碼

非常簡單

<?php
/**
 * @CreateTime:   2020/5/3 下午6:30
 * @Author:       huizhang  <tuzisir@163.com>
 * @Copyright:    copyright(2020) Easyswoole all rights reserved
 * @Description:  解析ini配置文件
 */
namespace EasySwoole\Ini;

use EasySwoole\Component\Singleton;
use EasySwoole\EasySwoole\Config;
use EasySwoole\Spl\SplArray;

class Ini
{
    use Singleton;

    protected $iniDir;

    public function __construct()
    {
        $this->iniDir = Config::getInstance()->getConf('INI_DIR');
    }

    public function setDir($iniDir)
    {
        $this->iniDir = $iniDir;
        return $this;
    }

    public function getConf(string $fileName, $key)
    {
        return $this->parseConf($fileName, $key);
    }

    private function parseConf($fileName, $key)
    {
        $config = parse_ini_file($this->iniDir.'/'.$fileName.'.ini', true);

        if ($key == null) {
            return $config;
        }

        if (empty($key)) {
            return null;
        }
        if (strpos($key, '.') > 0) {
            $temp = explode('.', $key);
            if (is_array($config)) {
                $data = new SplArray($config);
                return $data->get(implode('.', $temp));
            }
        }

        return $config[$key];
    }
}

配置文件格式

database.ini

; 訂單數(shù)據(jù)庫
[order]
host=127.0.0.1
port=3306
user=admin
password=123456
database=order

; 用戶數(shù)據(jù)庫
[user]
host=127.0.0.1
port=3306
user=admin
password=123456
database=user

配置Ini配置文件的默認(rèn)目錄

配置ini文件的目錄有兩種方式

1. 在EasySwoole的配置文件中膨报,比如dev.php
<?php
return [
    'SERVER_NAME' => "EasySwoole",
    'MAIN_SERVER' => [
        xxx
    ],
    'INI_DIR' => EASYSWOOLE_ROOT.'/Config/Ini' // 指定ini配置文件的目錄
];
2. 在mainServerCreate方法中注冊
public static function mainServerCreate(EventRegister $register)
{
    Ini::getInstance()->setDir(EASYSWOOLE_ROOT.'/Config/Ini');
}

使用方式

// 獲取database.ini中的所有配置
Ini::getInstance()->getConf('database');

// 獲取database.ini中的一塊配置
Ini::getInstance()->getConf('database', 'order');

// 獲取database.ini中的一塊配置的某一項
Ini::getInstance()->getConf('database', 'order.host');

EasySwoole

官網(wǎng):http://www.easyswoole.com

交流群:932625047

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末狡孔,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子妹萨,更是在濱河造成了極大的恐慌谤饭,老刑警劉巖标捺,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異揉抵,居然都是意外死亡亡容,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進(jìn)店門冤今,熙熙樓的掌柜王于貴愁眉苦臉地迎上來闺兢,“玉大人,你說我怎么就攤上這事戏罢∥萏罚” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵龟糕,是天一觀的道長桐磁。 經(jīng)常有香客問我,道長讲岁,這世上最難降的妖魔是什么我擂? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任衬以,我火速辦了婚禮,結(jié)果婚禮上扶踊,老公的妹妹穿的比我還像新娘泄鹏。我一直安慰自己,他們只是感情好秧耗,可當(dāng)我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布备籽。 她就那樣靜靜地躺著,像睡著了一般分井。 火紅的嫁衣襯著肌膚如雪车猬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天尺锚,我揣著相機與錄音珠闰,去河邊找鬼。 笑死瘫辩,一個胖子當(dāng)著我的面吹牛伏嗜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播伐厌,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼承绸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了挣轨?” 一聲冷哼從身側(cè)響起军熏,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎卷扮,沒想到半個月后荡澎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡晤锹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年摩幔,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鞭铆。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡或衡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出衔彻,到底是詐尸還是另有隱情薇宠,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布艰额,位于F島的核電站澄港,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏柄沮。R本人自食惡果不足惜回梧,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一废岂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧狱意,春花似錦湖苞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至藏姐,卻和暖如春隆箩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背羔杨。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工捌臊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人兜材。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓理澎,卻偏偏與公主長得像,于是被迫代替她去往敵國和親曙寡。 傳聞我的和親對象是個殘疾皇子糠爬,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,802評論 2 345