renoki-co / laravel-yaml-config
通常是 Laravel 的配置文件,但使用一个 YAML 文件。在配置中编写对象和数组,无需编写难看的内联 JSON。
0.1.0
2022-11-16 20:20 UTC
Requires
- ext-yaml: *
- laravel/framework: ^9.35
Requires (Dev)
- mockery/mockery: ^1.5
- orchestra/testbench: ^7.0
- orchestra/testbench-core: ^7.0
- phpunit/phpunit: ^9.5.25
- dev-master
- 0.1.0
- dev-dependabot/github_actions/shivammathur/setup-php-2.30.5
- dev-dependabot/composer/orchestra/testbench-tw-7.42
- dev-dependabot/composer/orchestra/testbench-core-tw-7.43
- dev-dependabot/github_actions/actions/checkout-4.1.6
- dev-dependabot/github_actions/codecov/codecov-action-4.4.1
- dev-dependabot/composer/phpunit/phpunit-tw-9.6.19
- dev-dependabot/github_actions/actions/cache-4.0.2
This package is auto-updated.
Last update: 2024-09-03 20:16:13 UTC
README
通常是 Laravel 的配置文件,但使用一个 YAML 文件。在配置中编写对象和数组,无需编写难看的内联 JSON。
🚀 安装
您可以通过 composer 安装此包
composer require renoki-co/laravel-yaml-config
发布配置
php artisan vendor:publish --provider="RenokiCo\LaravelYamlConfig\LaravelYamlConfigServiceProvider" --tag="config"
🙌 使用方法
此包确保您不必在 .env 文件中使用内联 JSON,看起来像这样
AWS_CLUSTERS='[{"region": "us-east-1", "url": "..."}, {"region": "eu-west-1", "url": "..."}]' // config/clusters.php return [ 'aws' => env('AWS_CLUSTERS', json_encode([ // create a default for it ])), ];
首先,在您的根 Laravel 项目的根目录中创建一个本地的 .laravel.yaml
文件
touch .laravel.yaml
以 YAML 格式声明您的配置
clusters: aws: - region: us-east-1 url: https://... - region: eu-west-1 url: https://... google: - region: europe-west1 url: https://...
foreach (config('clusters.aws') as $cluster) { // $cluster['region'] }
您不应该将 .laravel.yaml
文件提交到代码仓库
echo ".laravel.yaml\n.laravel.yml" >> .gitignore
替换嵌套变量
虽然此包允许您设置任意配置而无需处理难看的编码 JSON,但您仍可以使用它来更新已存在的配置中的嵌套变量
database: connectons: mysql: host: mysql clusters: aws: # ...
声明默认值
虽然您不应该提交 .laravel.yaml
文件,但您可以提交一个 .laravel.defaults.yaml
文件,该文件可以包含您已声明的特定配置的默认值
touch .laravel.config.yaml
clusters: aws: [] google: []
顺序列表
在声明项目列表的默认值时请格外小心
# .laravel.defaults.yaml clusters: - region: us-east-1 - region: eu-west-1
当配置包含预填充列表的 .laravel.yaml
,如下所示时,会出现奇怪的行为
# .laravel.yaml clusters: - region: ap-south-1
您期望最终值中的 clusters
只包含一个项目时,实际上它会包含两个项目,第一个项目将被替换
// 'clusters' => [ // ['region' => 'ap-south-1'], // ['region' => 'eu-west-1'], // ] dump(config('clusters'));
🐛 测试
vendor/bin/phpunit
🤝 贡献
有关详细信息,请参阅 CONTRIBUTING
🔒 安全性
如果您发现任何安全相关的问题,请通过电子邮件发送到 alex@renoki.org 而不是使用问题跟踪器。