久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

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

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

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

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

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

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

來(lái)自其 Github Reopo,TOML 的目的如下:

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

TOML 和 PHP 在一起

各種語(yǔ)言的 TOML 解析器可以 在其項(xiàng)目 WIKI 中找到。

我們將利用 yosymfony/toml: 一個(gè) PHP 的 TOML 解析器 來(lái)嘗試下 TOML 語(yǔ)言,在你的 PHP 7.1+ 項(xiàng)目里使用 Composer:

composer require yosymfony/toml

TOML 的項(xiàng)目 Readme 里有一個(gè)示例配置信息,我們可以試著用起來(lái):

## 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"     }   } }

配置信息示例

接下來(lái)我們?cè)囍鴮?Laravel 的配置信息 config/database.php 解析為 TOML ,做個(gè)對(duì)比。

需要注意的是,這只是一個(gè)示范,Laravel 的配置系統(tǒng)要比 TOML 高級(jí)很多,這里這樣做的目的只是想在我們熟悉的配置信息里去理解 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

目前來(lái)講,TOML 并不允許 nilnull 值,這在一些使用 null 作為默認(rèn)值的場(chǎng)景下會(huì)變得很不方便。

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

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

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

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

<?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ě)時(shí),上面大部分的格式都出現(xiàn)了錯(cuò)誤,除了下面這一行:

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

PHP 解析器會(huì)將解析成功輸出為 DateTime 實(shí)例:

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號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
久久九九电影| 国产精品对白| 久久国产精品毛片| 视频一区日韩| 国产人成精品一区二区三| 国产成人在线中文字幕| 免费高潮视频95在线观看网站| 国产亚洲一区二区手机在线观看 | 国产精品一站二站| 不卡福利视频| 久色成人在线| 国产精品亚洲一区二区在线观看 | 特黄特色欧美大片| 亚洲一卡久久| 国产激情一区| 自拍日韩欧美| 911亚洲精品| 群体交乱之放荡娇妻一区二区| 中文字幕一区二区三区日韩精品| 麻豆国产欧美一区二区三区 | 欧美一级二级视频| 久久久久久久久99精品大| 亚洲香蕉久久| 日韩精品电影| 日韩av一二三| 美女久久久久| 欧美日韩 国产精品| 日韩欧美一区二区三区在线视频| 免费成人在线观看| 国产一区二区三区免费在线| 欧美特黄一级| 精品美女视频| 日韩一区二区三区精品| 中文字幕一区久| 69堂精品视频在线播放| 1000部精品久久久久久久久| 国产精品亚洲成在人线| 国产精品7m凸凹视频分类| 国产精品chinese| 老司机久久99久久精品播放免费| 成人在线视频区| 蜜臀久久99精品久久久久久9| 亚洲精品**中文毛片| 清纯唯美亚洲综合一区| 91久久久精品国产| 精品视频自拍| 日本午夜精品视频在线观看| 一区在线免费| 国产suv精品一区二区四区视频| 亚洲免费福利一区| 国产国产精品| 亚洲精品一级二级| 麻豆久久一区| 7777精品| 日本在线不卡视频| 丝袜美腿亚洲一区| 丝袜美腿诱惑一区二区三区| 国产日韩中文在线中文字幕 | 激情婷婷欧美| 成人午夜网址| 国产高清亚洲| 日韩成人午夜精品| 免费在线看一区| 精品一区在线| 中文在线а√在线8| 国产精品一二| 日韩一二三区在线观看| 国产午夜久久| 夜鲁夜鲁夜鲁视频在线播放| 久久99精品久久久久久园产越南 | 久久天堂av| 久久久久久色| 婷婷亚洲精品| 午夜一级久久| 国产一区亚洲| 日本精品不卡| 亚洲黄色免费看| 9999国产精品| 国产在线一区不卡| 黄色网一区二区| 麻豆一区二区三区| 美女视频黄免费的久久| 日韩三区四区| 石原莉奈一区二区三区在线观看| 免费欧美一区| 1024精品久久久久久久久| 久久久久国产精品一区三寸| 一区二区精品伦理...| 国产+成+人+亚洲欧洲在线| 国产精品久久久久久妇女| av不卡在线看| 高清久久精品| 国产精品美女午夜爽爽| 亚洲精品在线二区| 亚洲欧美日韩一区在线观看| 久久久久久久久丰满| 国产精品精品国产一区二区| 欧美一区激情| 日本v片在线高清不卡在线观看| 欧美日韩四区| 婷婷色综合网| 伊伊综合在线| 成人污污视频| 国产日本久久| 日韩国产欧美在线视频| 香蕉成人久久| 欧美日韩国产高清| 欧美成人高清| 久久亚洲国产| 亚洲v在线看| 中文另类视频| 日韩成人三级| 国产91欧美| 精品视频网站| 精品一区二区三区四区五区| 国产精品亚洲产品| 国产精品久av福利在线观看| 国产欧美自拍| 美女久久久久久| 国产成人精品福利| 激情偷拍久久| 亚洲精品大片| 精品无人区麻豆乱码久久久| 日韩一区二区三区免费| 夜久久久久久| 欧美视频久久| 国产福利电影在线播放| 亚洲一级少妇| 久久国产99| 国产美女久久| 免费一二一二在线视频| 亚洲男女自偷自拍| 国产精品一区二区免费福利视频| 在线天堂中文资源最新版| 最新亚洲一区| 国产精品一区亚洲| 日韩成人亚洲| 色8久久久久| 国产理论在线| 亚洲综合精品| 免费看久久久| 亚洲精品2区| 日韩欧美中文字幕电影| 国产在视频一区二区三区吞精| 激情久久久久久| 日韩黄色在线观看| 91亚洲自偷观看高清| 久久亚洲电影| 久久精品午夜| 中文欧美日韩| 久久精品国产99国产| 亚洲欧洲一区二区天堂久久| 国产乱码精品一区二区亚洲| 天堂资源在线亚洲| 久久精品xxxxx| 欧美va天堂| 欧美片网站免费| 日本精品不卡| 97se亚洲| 久久蜜桃av| 国产精品一区二区三区www| 亚洲网站视频| 国产精品久av福利在线观看| 伊人久久亚洲美女图片| 鲁大师精品99久久久| 日韩午夜精品| 精品日韩一区| 蜜桃av一区二区| 中文字幕一区久| 欧美私人啪啪vps| 在线视频亚洲| 国产一区二区三区四区五区| 久久亚洲视频| 日韩网站中文字幕| 国产精品羞羞答答在线观看| 99视频一区| www.com.cn成人| 欧美一区二区三区久久精品| 欧美日韩国产精品一区二区亚洲| 久久字幕精品一区| 亚洲人www| 午夜av一区| 神马午夜在线视频| 久久99久久人婷婷精品综合| 一区二区国产精品| 午夜国产精品视频免费体验区| 精品久久精品| 日韩欧美2区| 亚洲黄页一区| 亚洲精品永久免费视频| 精品午夜av| 国产欧美日韩免费观看| 蜜桃一区二区三区在线观看| 国产综合色产| 国产va在线视频| 精品视频高潮| 国产精品久久久久77777丨| 午夜久久av| 老鸭窝亚洲一区二区三区| 久久中文视频|