dana / shellconf
此包已被放弃,不再维护。没有推荐替代包。
Shell风格的配置文件编码/解码器
v0.3
2017-10-17 22:52 UTC
Requires
- php: >=7.0.0
Requires (Dev)
- phpunit/phpunit: ^6.1
This package is not auto-updated.
Last update: 2022-12-23 11:46:21 UTC
README
\Dana\ShellConf 是一个PHP项目,提供了解析和操作shell风格(特别是bash风格)变量赋值的方法,对于简单的配置需求非常有用。(但请参阅下方的 理由。)
用法
通过Composer安装
composer require dana/shellconf
给定一个类似于这样的 config.sh
# comment here MYVAR1=foo # another comment here MYVAR2='foo bar' MYVAR3="foo \"bar\" baz"
和一个类似于这样的 config.php
<?php require_once __DIR__ . '/vendor/autoload.php'; $conf = new \Dana\ShellConf\ShellConf(); $conf->load('config.sh'); echo json_encode($conf->toArray(), \JSON_PRETTY_PRINT), "\n";
php config.php 将生成
{
"MYVAR1": "foo",
"MYVAR2": "foo bar",
"MYVAR3": "foo \"bar\" baz"
}
有用的方法
load($file)— 加载配置文件$fileparse($string)— 解析配置字符串$stringreset()— 在parse()调用之间重置任何加载的变量set($name, $value)— 创建并设置变量$name为$valueunset($name)— 取消变量$nameget($name, $default)— 获取变量$name的值toArray()— 获取所有加载的变量及其值作为数组toString()— 获取所有加载的变量及其值作为bash兼容的配置字符串(例如写入文件)
理由
该项目与许多其他设计用于读取'dotenv'文件的项目极为相似,但我在心中有一些具体的目标,这些目标并不一定与它们一致
-
其中大多数都专注于将文件加载到环境变量中,而这并不是我所需要的。我只想解析文件,可能还会写回。
-
其中一些似乎没有以与bash完全相同的方式处理转义和反转义。
-
其中许多项目对我来说过于复杂,支持诸如bash不兼容的扩展、变量插值、甚至命令替换等功能,这些我都不需要。
-
我对一些与转义相关的更精细的方法以及将bash兼容的行写回感兴趣。
出于所有这些原因,我决定自己编写实现。但如果你对这些问题都不感兴趣,你绝对应该检查一下这些广泛使用的项目之一
待办事项
更多测试。