gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

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

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

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

php零基礎(chǔ)到就業(yè)直播視頻課:進(jìn)入學(xué)習(xí)
接口如何自動化測試:快速上手

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

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

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

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 的配置系統(tǒng)要比 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 作為默認(rèn)值的場景下會變得很不方便。

縮進(jìn)是允許的,但是不強(qiáng)求,上面的文件使用以下寫法也不會有問題:

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

構(gòu)建一個 TOML 配置文件

擴(kuò)展包 yosymfony/toml 除了提供解析 TOML 文件和字串外,還提供了一個 TomlBuilder 類,用來實時構(gòu)建 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());

生成的內(nèi)容如下:

#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

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

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)
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
色一情一区二区三区| 久久久久久久久影视| 91好吊色国产欧美日韩在线| 91香蕉视频在线观看视频| 日韩精品免费播放| 国产精品视频一区二区三区四区五区 | 日韩一级理论片| 国产精品秘入口18禁麻豆免会员| 成年人深夜视频| 热久久最新网址| 久久久国内精品| 久久国产午夜精品理论片最新版本| 国产无色aaa| 在线免费黄色小视频| 尤物网站在线看| 亚洲一区二区中文字幕在线观看| 天天综合网日韩| 两性午夜免费视频| 99久久99久久精品| 午夜精品久久久久久久无码| 国产又大又硬又粗| 亚洲无吗一区二区三区| 黄色一级片免费播放| 欧美这里只有精品| 欧美 日韩 亚洲 一区| www日韩在线观看| 天堂av2020| 欧洲精品在线播放| 看欧美ab黄色大片视频免费| 国产色视频在线播放| 精品日韩在线播放| 久久精品.com| 一级黄色片在线免费观看| 国产资源第一页| 一女被多男玩喷潮视频| 91 在线视频观看| 成人区一区二区| 国产精品一区二区小说| 精品国产三级a∨在线| 免费av网址在线| 日韩av福利在线观看| 苍井空浴缸大战猛男120分钟| 国产色视频在线播放| 精品丰满人妻无套内射| 亚洲黄色小视频在线观看| 国产在线视频综合| 午夜视频在线观| 国产又黄又大又粗视频| 大桥未久一区二区| 三上悠亚av一区二区三区| www.日本在线视频| www.色就是色.com| 99视频在线视频| 草草久久久无码国产专区| 黄色免费高清视频| 亚洲欧美久久久久| 成人观看免费完整观看| 日韩黄色短视频| 亚洲五码在线观看视频| 国产又粗又长又爽又黄的视频| 国产a级一级片| 国产不卡一区二区视频| 国产成人亚洲综合无码| 午夜免费福利网站| 99re精彩视频| 天堂一区在线观看| 午夜免费福利在线| 亚洲色图久久久| 三级a三级三级三级a十八发禁止| av网站在线观看不卡| 91成人在线观看喷潮教学| 九九九九免费视频| 日本aa在线观看| 成人黄色大片网站| 奇米777四色影视在线看| 日韩最新中文字幕| www.好吊操| 无码中文字幕色专区| 精品无码国模私拍视频| 国产91沈先生在线播放| av免费看网址| 久久久久狠狠高潮亚洲精品| aⅴ在线免费观看| 一区二区三区免费播放| 欧美婷婷精品激情| 亚洲欧美aaa| 成年人视频大全| 黄色大片中文字幕| 国产精品wwwww| www午夜视频| 北条麻妃亚洲一区| 久久久亚洲精品无码| 国产精品无码一本二本三本色| 精品日韩久久久| 小泽玛利亚av在线| 免费成人午夜视频| 污版视频在线观看| 神马午夜伦理影院| 日韩无套无码精品| 好色先生视频污| 青青草原av在线播放| 久久精品国产99久久99久久久| 亚洲国产一二三精品无码| 激情综合在线观看| 午夜精品免费看| av在线播放亚洲| 青青草原播放器| 国产中文字幕视频在线观看| 色免费在线视频| 免费看国产曰批40分钟| www.com黄色片| 日本中文字幕亚洲| 嫩草视频免费在线观看| 欧美日韩成人免费视频| 国产福利片一区二区| 国产a视频免费观看| 国产91在线亚洲| wwwwxxxx日韩| 国产在线观看福利| 东北少妇不带套对白| 国产大尺度在线观看| a在线观看免费视频| www.亚洲天堂网| 久久精品无码中文字幕| 日韩video| 国产传媒免费观看| 中国黄色片免费看| 日韩精品视频一区二区在线观看| 欧美精品久久96人妻无码| 黄色手机在线视频| 91蝌蚪视频在线观看| 女人天堂av手机在线| 国产传媒久久久| 法国空姐在线观看免费| 无套内谢丰满少妇中文字幕| 免费精品99久久国产综合精品应用| 久久网站免费视频| 国产日韩欧美精品在线观看| 在线观看污视频| 日本丰满少妇黄大片在线观看| 日韩亚洲欧美视频| 麻豆一区二区三区在线观看| 视频一区二区视频| 欧美一二三不卡| 久久福利一区二区| 被灌满精子的波多野结衣| av动漫在线播放| 欧美一级片免费播放| 少妇高潮喷水在线观看| 欧美亚洲另类色图| 777视频在线| 中文字幕资源在线观看| 欧美精品一区二区性色a+v| 一二三在线视频| 狠狠干 狠狠操| 亚洲中文字幕无码一区二区三区| 国产午夜伦鲁鲁| 欧美 日韩 国产 高清| 天堂在线精品视频| 777一区二区| 一本大道东京热无码aⅴ| 中文字幕av专区| 欧美成人免费高清视频| www精品久久| 日韩中文字幕二区| 日本一极黄色片| 爱情岛论坛成人| 老司机午夜av| 色姑娘综合天天| 青青草原av在线播放| 中文字幕在线观看第三页| 欧美激情国内自拍| 无码粉嫩虎白一线天在线观看 | 国产一级片自拍| 久草视频这里只有精品| 日本一极黄色片| 国产一级做a爰片久久毛片男| 欧美女人性生活视频| www.午夜色| 一区二区xxx| 国内国产精品天干天干| 国产成人无码一二三区视频| 日本中文字幕在线不卡| 手机看片福利日韩| 国产美女三级视频| 免费看的黄色大片| 可以在线看的av网站| 日本人体一区二区| 三上悠亚免费在线观看| 99九九精品视频| 欧美一级特黄a| 九色porny自拍| 久久综合久久久久| www.涩涩涩| 日本不卡一区二区在线观看| 99九九99九九九99九他书对| 久久综合亚洲精品| 久久久久久久久久久久久久久国产| 国产精品久久久久久久久电影网| 一区二区三区 日韩|