webmaesther / configuru
配置的单个来源
Requires
- php: ^7.1
- league/container: ^2.2
- symfony/console: ^3.2
- symfony/finder: ^3.2
- symfony/yaml: ^3.2
Requires (Dev)
- codeception/codeception: ^2.2
- phpspec/phpspec: ^3.2
This package is not auto-updated.
Last update: 2024-09-28 20:40:52 UTC
README
关于Configuru
有时你只是稍微修改一下配置文件,似乎一切正常,但几周或几个月后,系统中出现了令人烦恼的bug,你调试了几个小时才找到原因是你在另一个文件中没有编辑相同的配置。
如果你遇到过这个问题,那么Configuru正是为你准备的!使用这个工具,你可以轻松地从单一的真实来源重建你的配置文件。
安装
如果你正在使用composer,你可以轻松地将Configuru安装到你的项目中。
composer require webmaesther/configuru --dev
建议你只为开发需要此包,因为这个包是作为构建工具设计的。
或者,如果你想,你总是可以全局安装它。
入门
添加configuru.yml
在你的根目录中添加一个configuru.yml文件,其中包含所有要替换的键值对。
replace: key: "value"
添加.guru文件
对于你希望替换的每个文件,在相同的文件夹中添加一个guru文件。例如,如果你想构建你的config.yml文件,在你的项目中添加一个config.guru.yml文件,并在guru文件中使用:(key)作为你在configuru.yml中配置的值的占位符。
使用configuru构建
vendor/bin/configuru build
此命令将递归地查找项目文件夹中的所有guru文件,用配置的键值替换它们,并将它们保存到具有相同文件名但无.guru扩展名的文件中。
Configuru将覆盖它遇到的任何文件!
高级用法
转义键
如果你在文件中有格式为:(key)的文本,但你不希望替换它,只需在冒号前添加一个反斜杠来转义该键,例如:\:(key)。它将被替换为没有反斜杠的字符串:(key)。
构建路径
默认情况下,Configuru将在当前工作目录中查找它能够找到的所有guru文件。你可以指定不同的路径作为命令的第一个参数。
vendor/bin/configuru build path/to/build
所有文件类型
请注意,Configuru将构建任何文本文件,而不仅仅是典型的配置文件扩展名(yaml、php、json),只要文件名包含.guru,它就会使用该文件来构建没有.guru的同一文件。
灵活的guru文件名
实际上,你可以在文件名中的任何位置放置.guru扩展名。例如,.guru.config.yml将构建.config.yml。但.guruconfig.yml不会构建config.yml。
示例
你可以在example文件夹中找到一些示例。它包含guru文件以及构建结果。