Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/koriym/Koriym.EnvJson
Set environment variables in JSON with schema
https://github.com/koriym/Koriym.EnvJson
Last synced: about 2 months ago
JSON representation
Set environment variables in JSON with schema
- Host: GitHub
- URL: https://github.com/koriym/Koriym.EnvJson
- Owner: koriym
- License: mit
- Created: 2022-06-25T15:16:17.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-06-04T01:49:11.000Z (4 months ago)
- Last Synced: 2024-07-14T18:45:05.360Z (3 months ago)
- Language: PHP
- Homepage: https://packagist.org/packages/koriym/env-json
- Size: 62.5 KB
- Stars: 5
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.ja.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Security: .github/SECURITY.md
Awesome Lists containing this project
README
# Koriym.EnvJson
`.env`ファイルに変わってJSONで環境変数をセットします。
[JSONスキーマ](https://json-schema.org/) によるバリデーションは、JSONだけでなく環境変数に対しても行われます。## インストール
composer require koriym/env-json
## 使用方法
`env.schema.json`スキーマファイルのディレクトリを指定して`load()`します。
```php
(new EnvJson())->load($dir);
```1) 既に環境変数が設定されている場合は、`env.schema.json`によって検証されます。
2) 検証できない場合は`env.json` または `env.dist.json` の値を検証して環境変数にします。$dir/env.json
```json
{
"$schema": "./env.schema.json",
"FOO": "foo1",
"BAR": "bar1"
}
```$dir/env.schema.json
```json
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": [
"FOO", "BAR"
],
"properties": {
"FOO": {
"description": "Foo's value",
"minLength": 3
},
"BAR": {
"description": "Bar's value",
"enum": ["bar1", "bar2"]
}
}
}
````.env`ファイルと比べて、より適切なドキュメンテーションや制約を表すことができます。
## iniファイルを変換
`ini2json`でenv(ini)ファイルからJSONとそのJSONスキーマファイルが生成されます。
```
./vendor/bin/ini2json .env
```