From 41b90846fdc2ade7b8607e7e93c7fff90c119381 Mon Sep 17 00:00:00 2001 From: Inhere Date: Sun, 7 Aug 2022 14:11:52 +0800 Subject: [PATCH] up: update the release action script, and update readme --- .github/changelog.yml | 49 ++++++++------ .github/workflows/release.yml | 41 ++---------- README.md | 32 +++++++-- README.zh-CN.md | 118 ++++++++++++++++++++++++++++++++++ 4 files changed, 182 insertions(+), 58 deletions(-) create mode 100644 README.zh-CN.md diff --git a/.github/changelog.yml b/.github/changelog.yml index f5df969..06048e3 100644 --- a/.github/changelog.yml +++ b/.github/changelog.yml @@ -1,27 +1,36 @@ -options: - title: '## Change Log' - style: gh-release +title: '## Change Log' +# style allow: simple, markdown(mkdown), ghr(gh-release) +style: gh-release +# group names +names: [Refactor, Fixed, Feature, Update, Other] +#repo_url: https://github.com/gookit/gcli + filters: - # message length >= 12 - - name: msgLen - minLen: 12 - # message words >= 3 - - name: wordsLen - minLen: 3 + # message length should >= 12 + - name: msg_len + min_len: 12 + # message words should >= 3 + - name: words_len + min_len: 3 + - name: keyword + keyword: format code + exclude: true - name: keywords - keywords: ['format code'] + keywords: format code, action test exclude: true +# group match rules # not matched will use 'Other' group. -groups: - - name: New - keywords: [add, new] +rules: + - name: Refactor + start_withs: [refactor, break] + contains: ['refactor:', 'break:'] - name: Fixed - startWiths: [add, new] - keywords: [add, new] - - name: Feat - startWiths: [feat] - keywords: [feature] + start_withs: [fix] + contains: ['fix:'] + - name: Feature + start_withs: [feat, new] + contains: ['feat:', 'new:'] - name: Update - startWiths: [update, 'up:'] - keywords: [update] + start_withs: [up] + contains: ['update:', 'up:'] diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5c55ac5..7b4db6f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -7,17 +7,15 @@ on: jobs: release: - name: Test on php ${{ matrix.php}} + name: Tag release runs-on: ubuntu-latest timeout-minutes: 10 - strategy: - fail-fast: true - matrix: - php: [8.0] steps: - name: Checkout uses: actions/checkout@v3 + with: + fetch-depth: 0 - name: Set ENV for github-release # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#setting-an-environment-variable @@ -25,40 +23,15 @@ jobs: echo "RELEASE_TAG=${GITHUB_REF:10}" >> $GITHUB_ENV echo "RELEASE_NAME=$GITHUB_WORKFLOW" >> $GITHUB_ENV - # usage refer https://github.com/shivammathur/setup-php - - name: Setup PHP - timeout-minutes: 5 - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php}} - tools: pecl, php-cs-fixer, phpunit - extensions: mbstring, dom, fileinfo, openssl # , swoole-4.4.19 #optional, setup extensions - ini-values: post_max_size=56M, short_open_tag=On #optional, setup php.ini configuration - coverage: none #optional, setup coverage driver: xdebug, none - - # Add a test script to composer.json, for instance: "test": "vendor/bin/phpunit" - # Docs: https://getcomposer.org/doc/articles/scripts.md - - - name: Install dependencies - run: | - echo $RELEASE_TAG - echo $RELEASE_NAME - tag1=${GITHUB_REF#refs/*/} - echo "release tag: ${tag1}" - composer update --no-progress - - # more see https://github.com/inhere/kite - - name: Generate changelog file - id: changelog + - name: Generate changelog run: | - wget -c -q https://github.com/inhere/kite/releases/latest/download/kite.phar - php kite.phar git cl prev last --style gh-release --no-merges --fetch-tags --unshallow --file changelog.md - cat changelog.md + curl https://github.com/gookit/gitw/releases/latest/download/chlog-linux-amd64 -L -o /usr/local/bin/chlog + chmod a+x /usr/local/bin/chlog + chlog -c .github/changelog.yml -o changelog.md prev last # https://github.com/softprops/action-gh-release - name: Create release and upload assets uses: softprops/action-gh-release@v1 -# if: startsWith(github.ref, 'refs/tags/') with: name: ${{ env.RELEASE_TAG }} tag_name: ${{ env.RELEASE_TAG }} diff --git a/README.md b/README.md index ebb7ba0..6bbf886 100644 --- a/README.md +++ b/README.md @@ -5,12 +5,16 @@ [![Latest Stable Version](http://img.shields.io/packagist/v/phppkg/config.svg)](https://packagist.org/packages/phppkg/config) [![Actions Status](https://github.com/phppkg/easytpl/workflows/Unit-Tests/badge.svg)](https://github.com/phppkg/easytpl/actions) -Config load, management, get, set and more. +Config load, management, merge, get, set and more. - Config data load, management +- Support load multi config data, will auto merge - Supports INI,JSON,YAML,TOML,NEON,PHP format file +- Support for exporting configuration data to file - Language data management +> **[中文说明](README.zh-CN.md)** + ## Install **composer** @@ -23,7 +27,7 @@ composer require phppkg/config ## Usage -**Config** +create and load config data. ```php use PhpPkg\Config\ConfigBox; @@ -63,7 +67,7 @@ array(7) { } ``` -### Get value +## Get value ```php /** @var PhpPkg\Config\ConfigBox $config */ @@ -77,7 +81,27 @@ $config->getInt('arr0.1'); // int(23) $config->getString('map0.key0'); // string('val0') ``` -### More load methods +## Set value + +```php +/** @var PhpPkg\Config\ConfigBox $config */ +$config->set('name', 'INHERE'); +$config->set('map0.key0', 'new value'); +``` + +## Export to file + +Export config data to file. + +```php +use PhpPkg\Config\ConfigBox; + +/** @var ConfigBox $config */ +$config->exportTo('/path/to/file.json'); +$config->exportTo('/path/to/my.conf', ConfigBox::FORMAT_YAML); +``` + +## More load methods - `loadFromFiles(array $filePaths, string $format = '')` - `loadFromStrings(string $format, string ...$strings)` diff --git a/README.zh-CN.md b/README.zh-CN.md new file mode 100644 index 0000000..c142585 --- /dev/null +++ b/README.zh-CN.md @@ -0,0 +1,118 @@ +# Config + +[![License](https://img.shields.io/packagist/l/phppkg/config.svg?style=flat-square)](LICENSE) +[![Php Version](https://img.shields.io/badge/php-%3E=8.0-brightgreen.svg?maxAge=2592000)](https://packagist.org/packages/phppkg/config) +[![Latest Stable Version](http://img.shields.io/packagist/v/phppkg/config.svg)](https://packagist.org/packages/phppkg/config) +[![Actions Status](https://github.com/phppkg/easytpl/workflows/Unit-Tests/badge.svg)](https://github.com/phppkg/easytpl/actions) + +PHP的配置数据加载,管理,获取,支持多种数据格式. + +- 配置数据加载,管理,获取 +- 支持加载多个配置数据,会自动合并 +- 支持 INI,JSON,YAML,TOML,NEON,PHP 等格式的文件内容 +- 支持导出整个配置数据到文件 +- 简单的多语言配置数据管理 + +> **[EN README](README.md)** + +## 安装 + +**composer** + +- Required PHP 8.0+ + +```bash +composer require phppkg/config +``` + +## 快速开始 + +先创建一个配置实例,就可以加载指定的配置数据了. + +```php +use PhpPkg\Config\ConfigBox; + +$config = ConfigBox::new(); +$config->loadFromFiles([ + __DIR__ . '/test/testdata/config.ini', + __DIR__ . '/test/testdata/config.neon', + __DIR__ . '/test/testdata/config.yml', + __DIR__ . '/test/testdata/config.toml', +]); +``` + +### 查看加载的数据 + +```php +// dump config +vdump($config->getData()); +``` + +**Output**: + +```php +CALL ON PhpPkg\ConfigTest\ConfigBoxTest(24): +array(7) { + ["name"]=> string(6) "inhere" + ["age"]=> int(89) + ["atIni"]=> string(6) "value0" + ["arr0"]=> array(3) { + [0]=> string(2) "ab" + [1]=> int(23) + [2]=> string(2) "de" + } + ["map0"]=> array(2) { + ["key0"]=> string(4) "val0" + ["key1"]=> string(4) "val1" + } + ["atNeon"]=> string(6) "value1" + ["atYaml"]=> string(6) "value2" + ["atToml"]=> string(6) "val at toml" +} +``` + +## 获取值 + +可以获取指定类型的返回值,同时支持链式key方式获取值 + +```php +/** @var PhpPkg\Config\ConfigBox $config */ +$config->getInt('age'); // int(89) +$config->getString('name'); // string('inhere') +$config->get('arr0'); +$config->get('map0'); + +// get value by key-path. +$config->getInt('arr0.1'); // int(23) +$config->getString('map0.key0'); // string('val0') +``` + +## 设置值 + +```php +/** @var PhpPkg\Config\ConfigBox $config */ +$config->set('name', 'INHERE'); +$config->set('map0.key0', 'new value'); +``` + +## 导出到文件 + +支持导出整个配置数据到文件. + +```php +use PhpPkg\Config\ConfigBox; + +/** @var ConfigBox $config */ +$config->exportTo('/path/to/file.json'); +$config->exportTo('/path/to/my.conf', ConfigBox::FORMAT_YAML); +``` + +## More load methods + +- `loadFromFiles(array $filePaths, string $format = '')` +- `loadFromStrings(string $format, string ...$strings)` +- `loadFromSteam(string $format, resource $stream)` + +## License + +[MIT](LICENSE)