成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長資訊網
最全最豐富的資訊網站

什么是TOML?PHP中怎么配置使用TOML

本篇文章帶大家聊聊PHP中的TOML配置,介紹一下在 PHP 中如何使用 TOML 配置文件格式語言,希望對大家有所幫助!

什么是TOML?PHP中怎么配置使用TOML

php零基礎到就業直播視頻課:進入學習
接口如何自動化測試:快速上手

TOML 是一個配置格式化語言,特色是簡潔易讀。 全稱為 "Tom's Obvious, Minimal Language" 其中的 Tom 為創建者 —— Tom Preston-Werner (譯者注:Github CEO)。

來自其 Github Reopo,TOML 的目的如下:

TOML 是一門簡潔易用的配置信息格式化語言,高可讀性來自于其優雅的語法。 TOML 為哈希表數據結構量身定制的,在各種編程語言里皆可以輕松地將 TOML 解析為各自的數據結構。

TOML 和 PHP 在一起

各種語言的 TOML 解析器可以 在其項目 WIKI 中找到。

我們將利用 yosymfony/toml: 一個 PHP 的 TOML 解析器 來嘗試下 TOML 語言,在你的 PHP 7.1+ 項目里使用 Composer:

composer require yosymfony/toml

TOML 的項目 Readme 里有一個示例配置信息,我們可以試著用起來:

## This is a TOML document.  title = "TOML Example"  [owner] name = "Tom Preston-Werner" dob = 1979-05-27T07:32:00-08:00 # First class dates  [database] server = "192.168.1.1" ports = [ 8001, 8001, 8002 ] connection_max = 5000 enabled = true  [servers]    # Indentation (tabs and/or spaces) is allowed but not required   [servers.alpha]   ip = "10.0.0.1"   dc = "eqdc10"    [servers.beta]   ip = "10.0.0.2"   dc = "eqdc10"  [clients] data = [ ["gamma", "delta"], [1, 2] ]  # Line breaks are OK when inside arrays hosts = [   "alpha",   "omega" ]

下面是 PHP 的解析和輸出:

<?php  use YosymfonyTomlToml;  require __DIR__ . '/vendor/autoload.php';  $data = Toml::ParseFile(__DIR__.'/example.toml');  var_dump($data);  // output php index.php string(10) "1979-05-27" toml-demo|? php index.php array(5) {   ["title"]=>   string(12) "TOML Example"   ["owner"]=>   array(2) {     ["name"]=>     string(18) "Tom Preston-Werner"     ["dob"]=>     object(DateTime)#243 (3) {       ["date"]=>       string(26) "1979-05-27 07:32:00.000000"       ["timezone_type"]=>       int(1)       ["timezone"]=>       string(6) "-08:00"     }   }   ["database"]=>   array(4) {     ["server"]=>     string(11) "192.168.1.1"     ["ports"]=>     array(3) {       [0]=>       int(8001)       [1]=>       int(8001)       [2]=>       int(8002)     }     ["connection_max"]=>     int(5000)     ["enabled"]=>     bool(true)   }   ["servers"]=>   array(2) {     ["alpha"]=>     array(2) {       ["ip"]=>       string(8) "10.0.0.1"       ["dc"]=>       string(6) "eqdc10"     }     ["beta"]=>     array(2) {       ["ip"]=>       string(8) "10.0.0.2"       ["dc"]=>       string(6) "eqdc10"     }   }   ["clients"]=>   array(2) {     ["data"]=>     array(2) {       [0]=>       array(2) {         [0]=>         string(5) "gamma"         [1]=>         string(5) "delta"       }       [1]=>       array(2) {         [0]=>         int(1)         [1]=>         int(2)       }     }     ["hosts"]=>     array(2) {       [0]=>       string(5) "alpha"       [1]=>       string(5) "omega"     }   } }

配置信息示例

接下來我們試著將 Laravel 的配置信息 config/database.php 解析為 TOML ,做個對比。

需要注意的是,這只是一個示范,Laravel 的配置系統要比 TOML 高級很多,這里這樣做的目的只是想在我們熟悉的配置信息里去理解 TOML:

[database]     default = "mysql"     migrations = "migrations"      [database.connections.sqlite]         driver = "sqlite"         database = "path/to/database.sqlite"         prefix = ""      [database.connections.mysql]         driver = "mysql"         host = "127.0.0.1"         port = "3306"         database = "forge"         username = "forge"         password = ""         unix_socket = ""         charset = "utf8mb4"         collation = "utf8mb4_unicode_ci"         prefix = ""         strict = true      [database.redis]         client = "predis"          [database.redis.default]             host = "127.0.0.1"             password = ""             port = 6379             database = 0

目前來講,TOML 并不允許 nilnull 值,這在一些使用 null 作為默認值的場景下會變得很不方便。

縮進是允許的,但是不強求,上面的文件使用以下寫法也不會有問題:

[database] default = "mysql" migrations = "migrations"  [database.connections.sqlite] driver = "sqlite" database = "path/to/database.sqlite" prefix = ""  # ...

構建一個 TOML 配置文件

擴展包 yosymfony/toml 除了提供解析 TOML 文件和字串外,還提供了一個 TomlBuilder 類,用來實時構建 TOML 配置信息,接下來我們還是使用 Laravel 的 config/services.php 來作為例子講解:

<?php  use YosymfonyTomlTomlBuilder;  require __DIR__.'/vendor/autoload.php';  $builder = new TomlBuilder();  $services = $builder     ->addComment('Third Party Services')     ->addComment('Mailgun')     ->addTable('services.mailgun')         ->addValue('domain', 'mg.example.com')         ->addValue('secret', 'mailgun-secret')     ->addComment('Stripe')     ->addTable('services.stripe')         ->addValue('model', 'AppUser')         ->addValue('key', 'stripe-key')         ->addValue('secret', 'stripe-secret') ;  file_put_contents(__DIR__.'/services.toml', $services->getTomlString());

生成的內容如下:

#Third Party Services #Mailgun  [services.mailgun] domain = "mg.example.com" secret = "mailgun-secret" #Stripe  [services.stripe] model = "App\User" key = "stripe-key" secret = "stripe-secret"

日期

TOML 支持 RFC 3339 制定的日期格式:

# Offset Date-Time odt1 = 1979-05-27T07:32:00Z odt2 = 1979-05-27T00:32:00-07:00 odt3 = 1979-05-27T00:32:00.999999-07:00 # space permitted per the RFC 3339 spec odt4 = 1979-05-27 07:32:00Z  # Local Date-Time ldt1 = 1979-05-27T07:32:00  # Local Date ld1 = 1979-05-27  # Local Time lt1 = 07:32:00 lt2 = 00:32:00.999999

在此篇文章編寫時,上面大部分的格式都出現了錯誤,除了下面這一行:

dob = 1979-05-27T07:32:00-08:00

PHP 解析器會將解析成功輸出為 DateTime 實例:

array(1) {   ["dob"]=>   object(DateTime)#128 (3) {     ["date"]=>     string(26) "1979-05-27 07:32:00.000000"     ["timezone_type"]=>     int(1)     ["timezone"]=>     string(6) "-08:00"   } }

閱讀

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
丰满少妇XXXⅩBBBB视频| 寡妇大J8又粗又大| 成人H动漫无码网站| 寡妇下面好黑好毛| 国产午夜亚洲精品国产成人小说 | 久久精品国产亚洲AV麻豆| 亚洲精品无码久久久久AV老牛 | 日本无人区码一码二码三码四码 | 天天躁日日躁狠狠躁欧美老妇小说 | 亚洲AV无码传区国产乱码O| 亚洲熟妇色XXXXXX爽| 2018人人看人人爽| 冲动的惩罚动漫HD在线播放| 国产丝袜无码一区二区三区视频| 精品少妇一区二区| 国产偷国产偷亚洲高清人| 精品国产精品国产偷麻豆| 乱码一卡2卡3卡4卡精品| 人妻互换ⅩXXXBBBB| 无码办公室丝袜OL中文字幕| 亚洲欧美乱综合图片区小说区| 亚洲AV素人乱码| 在线精品国精品国产尤物| 成年午夜无码AV片在线观看| 国产在线精品无码AV不卡顿| 久久综合亚洲色HEZYO国产| 日本高清在线视频WWW色| 欧美一区二区三区孕妇精品| 色婷婷AV一区二区三区浪潮 | 中文无码VR最新无码AV专区| 亚洲熟妇无码V在线观看| CAOPORN最新地址| 国产精品久久午夜夜伦鲁鲁| 国产精品成人永久在线四虎| 久久精品国产亚洲AV网站| 人妻AV综合天堂一区| 校花下乡被灌满受孕| 中文字幕亚洲乱码熟女一区二区 | 色五月五月丁香亚洲综合网| 亚洲国产精品成人久久蜜臀| 亚洲AV无码丰满尖叫高潮| 12孩岁女A处破娇小| 国产精品18久久久久久麻辣| 久久精品中文騷妇女内射| 撅高屁股乖乖被学长CAO男男| 日本高清WWW色视频总站| 亚洲国产精品久久久久久无码| AVTT天堂网久久精品| 国精产品一区一区三区有限公司| 蜜中蜜3在线观看视频| 女人越喊男人越往里寨电视剧| 天天做AV天天爱天天爽| 在厨房乱子伦对白| 国产成人亚洲精品| 久久人与动人物A级毛片| 美女露内裤扒开腿让男人桶无遮挡 | 69日本人XXXX16-18| 91久久精品www人人做人人爽| 国产操熟女性爱导航| 乱码午夜-极品国产内射| 我调教同学的放荡麻麻| 91人妻中文字幕在线精品| 国产亚洲AV电影院之毛片| 欧美精产国品一二三类产品特点| 亚洲AV日韩AV成人AV| 锕锕锕锕锕WWW湿透了10秒| 精品久久AⅤ人妻中文字幕| 日本丰满熟妇乱子伦| 一本色道久久88加勒比—综合| 18禁美女裸体无遮挡免费观看国| 国产乱人伦无无码视频试看| 久久99精品久久久久久噜噜| 少妇极品熟妇人妻无码| 亚洲AV秘 无码一区二区三密桃 | 久久成人国产精品| 少妇又紧又深又湿又爽视频| 性欧美老妇人XXⅩ000| 日产乱码一二三区别免费麻豆 | 学生无码AV一区二区三区| А√在线天堂官网| 看国产黄大片在线观看| 学生妹亚洲一区二区| 吃瓜爆料网不打烊| 男女啪啪吃奶GIF动态图| 日日猛噜噜狠狠扒开双腿小说| 曰本伦理漂亮妈妈| 海角国精产品三区二区三区 | 人人爽人人澡人人人妻百度| 无码人妻精品一区二区三| А天堂中文在线官网在线| 久久亚洲精品无码AⅤ大香| 亚洲 无码 国产精品| 丰满人妻被公侵犯日本| 欧美视频二区欧美影视| 一对浑圆的胸乳被揉捏| 成熟交BGMBGMBGM的价格| 免费观看国产小粉嫩喷水精品午| 亚洲欧洲国产码专区在线观看| 国产老熟女八AV| 少妇人妻中文字幕| 波多野结衣与黑人AV| 欧美老妇疯狂XXXXBBBB| 在线A级毛片免费视频| 精品人妻一区二区三区四区在线| 污污网站18禁在线永久免费观看 | 调教小奴高潮惩罚PLAY道具| 别揉我奶头~嗯~啊~免费视频| 内射老妇BBWX0C0CK| 在线爱色视频观看免费视频| 久久99久久99精品免视看动漫| 亚洲AV日韩精品久久久久久| 国产精品Ⅴ无码大片在线看| 少妇饥渴偷公乱第一章全文| 大陆精大陆国产国语精品| 人妻少妇精品视频三区二区一区| 综合成人亚洲偷自拍色| 六月丁香婷婷色狠狠久久| 夜夜添夜夜添夜夜摸夜夜摸| 久久精品人妻中文系列葵司| 亚洲人成色777777精品音频| 精产国品一二三产品区别视频手机 | 色婷婷六月亚洲综合香蕉| 成人免费无码精品国产电影| 日韩AV一中美AV一中文字慕| 成人国产一区二区三区| 日韩人妻无码精品系列| 亚洲性无码一区二区三区| 精品一线二线三线区别大吗| 亚洲精品国产AⅤ成拍色拍| 好爽…又高潮了毛片喷水| 亚洲精品乱码久久久久久中文字幕| 黑人又大又粗又硬XXXXX| 亚洲乱色熟女一区二区三区蜜臀 | 精品人无码一区二区三区| 亚洲欧洲∨国产一区二区三区 | 亚洲一线产区二线产区分布图片| 精品无人乱码一区二区三区| 亚洲午夜性春猛交XXXX亚训| 久久精品国产亚洲AV麻| 中国CHINAGARY武警网站| 免费A级毛片无码免费视频1| 97无码免费人妻超级碰碰碰碰| 欧美激情视频一区| 槽溜2021入口一二三四| 色播久久人人爽人人爽人人片AV | 我的大胸继拇在线观看| 国产精品亚洲ΑV天堂无码| 羞羞漫画_成人漫画_成人专用| 韩漫嘿啾漫画进入| 一二三四免费观看高清在线| 男人J进入女人P呻吟视频免费| X姓女RAPPER| 色8久久人人97超碰香蕉987| 国产成人一区二区三区免费| 亚洲AV无码一期二期三期少妇| 精品亚洲国产成人AV制服| 中文字幕精品无码一区二区三区| 欧美性猛交XXXX免费看| 公么的大龟征服了我BD| 亚州中文字幕午夜福利电影| 久久EE热这里只有精品| 中文字幕AV高清片| 日本高清色WWW在线安全| 国产精品99久久99久久久| 亚洲国产成人乱码| 美女裸体无遮挡永久免费观看网站 | 13岁幼儿3OOO| 色一情一乱一乱一区91Av| 国产亚洲精久久久久久无码77777| 亚洲色无码国产精品网站可下载 | 无码AV波多野结衣久久| 激情综合激情五月俺也去| 中国少妇的BBWWBBWW| 日本人妻丰满熟妇久久久久久不卡| 国产高潮流白浆喷水在线观看| 亚洲国产精品久久久久制服| 妺妺窝人体色www聚色窝欢迎| 成人免费无码AV| 亚洲AV无码成人网站久久精品大 | 美女把腿扒开让我添视频| 成人免费看WWW网址入口| 亚洲AV片不卡无码久久| 亂倫近親相姦中文字幕AV| 成人午夜福利视频后入| 亚洲VA中文字幕无码一区| 男男H双腿涨灌PLAY慎入| 国产成人亚洲精品无码影院BT| 亚洲人成小说网站色在线观看| 欧美人交A欧美精品AV一区| 国产精品一区二区国产馆蜜桃| 伊人久久精品久久亚洲一区| 日本熟老太日本老熟网站| 娇妻借朋友高H繁交H| BRAZZERSHD欧美巨大| 午夜天堂精品久久久久| 免费国精产品一品二品| 国产成人无码AⅤ片在线观看视频 国产成人无码AⅤ片在线观看你 | 中国熟妇色XXXX欧美老妇多毛| 色欲ΑV一区二区三区天美传媒| 精品无码久久久久久久久|