4d47 / ani
此包最新版本(dev-master)没有可用的许可信息。
几乎等于INI,受ArchieML和PHP数组启发的解析器/发射器
dev-master
2018-12-12 17:48 UTC
Requires
- php: >=5.6
- mmucklo/inflect: *
Requires (Dev)
- phpunit/phpunit: ~4.5
- symfony/yaml: ~4.2
This package is not auto-updated.
Last update: 2024-09-27 23:47:21 UTC
README
这是对一种结构化文本格式的探索,这种格式是
- 易于编写
- 易于嵌入其他格式
- s ≈ emit(parse(s))
与INI的不同之处
- 没有解析错误
- 具有多行值
- 具有列表
- 使用冒号代替等号
上下文 从ArchieML的移植中构建。想用更简单的语法替换一堆YAML文件,该语法在序列化时不会改变格式。
使用方法
$result = Ani\parse("key: value"); $string = Ani\emit($result);
格式
» key: value
« [ 'key' => 'value' ]
重复键创建对象列表
» name: frank
age: 52
name: vincent
age: 64
« [
[
'name' => 'frank',
'age' => 52
],
[
'name' => 'vincent',
'age' => 62
]
]
文本行不会被忽略
» key: value
Jane is this working ?
« [
'key' => 'value',
'Jane is this working ?'
]
看起来像键的文本行可以用反斜杠转义
» \key: value
« [ 'key: value' ]
因此简单的“平面数组”很容易
» milk
cereals
« [ 'milk', 'cereals' ]
并且有部分
» [groceries]
milk
cereals
« [ 'groceries' => [ 'milk', 'cereals' ] ]
部分的复数(有争议)确定初始列表类型
» [groceries]
name: milk
« [ 'groceries' => [ [ 'name' => 'milk' ] ] ]
» [grocery]
name: milk
« [ 'grocery' => [ 'name' => 'milk' ] ]
多行通过写入换行符并缩进值开始!
» title: Funky
content:
Something along
the lines
« [ 'title' => 'Funky', 'content' => 'Something along\n the lines' ]
几乎相等于
- 键前的空格丢失
- 部分名称周围的空格丢失
- 多行缩进总是两个空格