成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院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號
国产裸拍裸体视频在线观看| 国产成人亚洲精品青草| YW尤物AV无码| 大号BBVVBBW高潮| 公和我做好爽添厨房在线观看| 粉嫩av一区二区三区四区 | 大肉大捧一进一出视频| 国产成人A码男人的天堂| 国产帅男男Gay在线观看| 国产日韩一区二区三区在线观看| 中国少妇嫖妓BBWBBW| 亚洲日韩AV无码中文| 日本精品少妇一区二区三区| 乳揉みま痴汉电车中文字幕| 我把护士日出水了视频| 亚洲爆乳中文字幕无码专区网站| 亚洲中文AⅤ中文字幕在线| 99久久久成人国产精品免费| AV一区二区三区人妻少妇| 丰满的少妇愉情HD高清免费| 国产又粗又猛又黄又爽无遮挡| 精品无人码麻豆乱码1区2区| 欧美成人片一区二区三区| 色综合视频一区二区三区| 亚洲AV无码精品色午夜蜜芽 | 亚洲А∨天堂久久精品2021| 与亲女洗澡时伦了| 宝贝对着镜子CAO好不好| 国产高清免费AV片在线观看不卡 | 欧美黑人又粗又大久久久| 天堂国品一二三产品区别大吗| 亚洲国产精品无码久久98| 97一期涩涩97片久久久久久久| 国产成人福利在线视频播放下载 | 国产精品VA在线观看无码不卡| 久久R热这里只有精品| 欧美午夜成人片在线观看| 无码视频免费一区二区三区| 伊人久久精品久久亚洲一区| 插花弄玉小说荔枝很甜| 黑人巨茎大战白人女40CM| 欧美午夜精品久久久久免费视 | 最新AV片免费网站入口| 国产AV天堂亚洲国产AV麻豆| 久久久久久精品免费免费HD| 日韩欧美精品有码在线| 亚洲日韩中文第一精品| 成人免费A级毛片久久| 精品综合久久久久久888蜜芽| 日本肉体XXXX裸交| 国产午夜精品一区二区三区极品 | 午夜福利理论片在线观看| 亚洲国产精品久久青草无码| JAPANESE嫩21VIDE| 好男人影视在线观看下载| 人妻丰满熟妇AV无码区不卡| 亚洲丰满少妇自摸| 草莓丝瓜芭乐鸭脖奶茶发型 | 亚洲成AV人无码综合在线| 阿娇13分钟视频无删减MP4| 黑人巨大JEEP日本人| 人人妻人人澡人人爽人人蜜臀 | 特级毛片全部免费播放| 在办公室被C到呻吟的动态图| 国产韩国精品一区二区三区 | 99久久免费国产精品四虎| 国产亚洲欧美日韩亚洲中文色| 欧美裸体XXXX极品少妇| 亚洲乱色熟女一区二区三区麻豆| 成熟丰满熟妇AV无码区| 麻豆传播媒体APP官网在线观看| 天堂资源中文最新版在线一区| 中文字幕一区二区精品区| 国产在线精品一品二区| 日本熟老太日本老熟网站| 一区二区不卡AV免费观看| 国产乱理伦片A级在线观看| 欧洲精品成人免费视频在线| 亚洲熟妇色XXXXX亚洲| 国产精品国产三级国产A| 你看桌子上都是你流的| 亚洲精品无码AV天堂| 国产成人亚洲精品无码综合原创| 欧美高清VIVO最新| 亚洲一区精品无码| 国模无码一区二区三区不卡| 日日婷婷夜日日天干| 中文字幕在线无码一区二区三区 | 国产乱子伦视频在线播放 | 成年免费视频黄网站在线观看| 久久综合色天天久久综合图片| 亚洲AV成人综合网伊人| 公交车最后一排被C| 青青草原精品99久久精品66| 再深点灬舒服灬太大了少妇| 精品国产国语对白久久免费| 无码人妻精品一区二区蜜桃91| А√天堂网WWW最新版地址| 美国ZOOM人与ZOOM| 亚洲最大AV网站在线观看| 黑人巨大两根一起挤进| 无码色AV一二区在线播放| 粉嫩av.com| 日本亲近相奷中文字幕视频| 99精品视频一区在线观看| 老公朋友东西好大| 亚洲熟妇AⅤ无码一区二区| 黑人巨大精品欧美| 亚洲AV无码乱码在线| 国产农村妇女毛片精品久久麻豆| 少妇人妻综合久久中文888| WWW一区二区三区在线 || 农村肥BWBWBWBWBW| 中文字幕无码乱码人妻系列蜜桃 | 色噜噜久久综合伊人一本| 锕锕锕锕锕锕锕好疼免费视频| 妺妺窝人体色WWW精品777| 尤物永久免费AV无码网站| 久久AV无码精品人妻系列| 亚洲欧洲无卡二区视頻| 精产一二三产区区别在哪| 性偷窥TUBE凸凹视频| 国产午夜精品免费一区二区三区| 无套内谢的新婚少妇国语播放| 国产精品久久久久久亚洲影视| 图片 小说 校园 激情 都市| 国产ΑV在线ΑV天堂AⅤ国产| 色窝窝无码一区二区三区色欲| 儿子耕了母亲荒废的田| 丧尸 湿润 粗大 快感 变异| 粉嫩一区二区三区| 爽爽AV浪潮AV一区二区| 国产精品第一区揄拍无码| 无码一区二区av| 国产性天天综合网| 亚洲另类人妻小说| 久久青草免费福利资源站| 伊人久久大香线蕉AV最新午夜| 乱肉怀孕又粗又大| 666西方大但人文艺术| 欧洲美熟女乱又伦AV| 车内挺进尤物少妇紧窄| 色综合天天综合网天天小说 | 小雪被老外黑人撑破了视频| 国内精品人妻久久毛片APP| 亚洲精品乱码久久久久久蜜桃不卡 | 免费看AV在线网站网址| 99热成人精品热久久6网站| 欧美亚洲国产SUV| 成人无码AⅤ久久精品国产传媒| 少妇厨房愉情理伦片BD在线观看 | 成人免费无码H在线观看不卡 | 欧美日韩在线视频一区二区| 把人妻日出白浆人妻视频| 色哟哟免费精品网站入口| 国产成人A码男人的天堂| 亚洲AV成人综合网久久成人| 精品人在线二线三线区别| 在线成人A毛片免费播放| 欧美人禽猛交乱配视频网站| 抽插丰满内射高潮视频| 无码任你躁久久久久久老妇| 精品毛卡卡1卡2卡3麻豆| 在线高清理伦片A| 人妻无码ΑV中文字幕琪琪布 | 色噜噜天堂AV崩坏星穹铁道| 国产精品无码久久久久久久久久| 亚洲国产精品线路久久| 民工把奶头吸得又大又长| 成人一区二区三区视频在线观看| 无码中文人妻在线三区| 久久久久久精品免费无码无| H纯肉无码精品动漫在线观看| 少妇高潮呻吟在线观看| 好紧好骚好诱人好软| 中文字幕无码家庭乱欲| 色欲AV无码中字乱人伦在线| 国产在线精品国自产拍影院同性| 伊人伊成久久人综合 成人| 秋霞午夜无码鲁丝片午夜精品| 国产精品久久久久精品…| 野草高清视频免费| 人妻体内射精一区二区三区| 国产乱子经典视频在线观看| 亚洲人妻在线视频| 欧美一区视频在线| 国产人澡人澡澡澡人碰视频| 中国老太太BBVBBⅤ| 日韩欧国产精品一区综合无码 | 少妇高潮太爽了在线播放| 精品国产一区二区三区AV性色| CHINESE东北嫖妓女HD| 我和亲妺在浴室作爱H伦| 久久人妻少妇嫩草AV无码专区 | 色哟哟免费精品网站入口| 精品久久久久久无码国产| 把腿张开老子臊烂你的漫画| 亚洲第一无码精品一区| 人妻人人做人妻人人添| 激情影视乱码AV|