ninthday / yaml
使用yaml加载您的Laravel配置文件。从https://github.com/antonioribeiro/yaml分叉而来
v1.4.0
2024-02-25 04:12 UTC
Requires
- php: >=7.0
- illuminate/support: >=5.5.33
- symfony/yaml: ^3.4|^4.0|^5.0|^6.0|^7.0
Requires (Dev)
- orchestra/testbench: 3.5|^3.6|^4.0|^5.0|^6.0|^7.0|^8.0
- phpunit/phpunit: ^4.0|^6.4|^7.0|^8.0|^9.0|^10.0
Suggests
- ext-yaml: Required to use the PECL YAML.
This package is auto-updated.
Last update: 2024-09-25 05:43:31 UTC
README
Laravel YAML解析器和配置加载器
理由
配置文件越来越大,难以维护和查看,为什么不用YAML来加载呢?
哪个更简洁?
主要功能
加载一个文件到Laravel配置
Yaml::loadToConfig(config_path('myapp.yml'), 'my-app-conf');
或者整个目录,递归地,这样所有这些文件都可以用一条命令加载
Yaml::loadToConfig(config_path('myapp'), 'my-app-conf');
加载包含所有配置文件的目录
.
└── myapp
├── multiple
│ ├── alter.yml
│ ├── app.yml
│ └── second-level
│ └── third-level
│ ├── alter.yml
│ └── app.yml
├── single
└── single-app.yml
然后您就可以像在Laravel中通常那样使用它了
config('my-app-conf.multiple.second-level.third-level.alter.person.name')
执行函数,就像在常规的Laravel PHP数组配置中一样。
repository: "{{ env('APP_NAME') }}" path: "{{ storage_path('app') }}"
配置值可以引用配置键,您只需这样引号即可
{{'format.version'}}
您可以在YAML文件中添加注释,这是JSON不允许的
build: mode: git-local #### other modes: git-remote or number
解析器和转储方法
如果您需要直接处理YAML,您可以使用这些公共方法
Yaml::parse($input, $flags) // Parses YAML into a PHP value. Yaml::parseFile($filename, $flags) // Parses a YAML file into a PHP value. Yaml::dump($input, $inline, $indent, $flags) // Dumps a PHP value to a YAML string.
这些是到Symfony的YAML的简单桥梁。
安装
通过Composer
$ composer require ninthday/yaml
使用
像您通常发布包那样发布您的包
$this->publishes([ __DIR__.'/../config/version.yml' => $this->getConfigFile(), ]);
在boot()
方法中加载配置
$this->app ->make('ninthday.yaml') ->loadToConfig($this->getConfigFile(), 'my-package');
或使用外观
Yaml::loadToConfig(config_path('myapp.yml'), 'my-package');
然后它会合并到您的Laravel配置中
config('my-package.name');
利用PECL YAML
要利用PECL YAML,您应该安装PECL YAML扩展并在服务提供者的register()
方法中注册绑定
$this->app->bind(\Ninthday\Yaml\Package\Support\Parser::class, \Ninthday\Yaml\Package\Support\PeclParser::class);
示例
这是来自另一个使用此包的包的YAML文件
current: major: 1 minor: 0 patch: 0 format: "{$major}.{$minor}.{$patch}" cache: enabled: true key: ninthday-version build: mode: git-local # git-remote or number number: 701031 git-local: "git rev-parse --verify HEAD" git-remote: "git ls-remote {$repository} refs/heads/master" repository: "{{ env('APP_GIT_REPOSITORY') }}" length: 6 format: version: "{$major}.{$minor}.{$patch} (build {$build})" full: "version {{'format.version'}}" compact: "v{$major}.{$minor}.{$patch}-{$build}" ## add as many formats as you need
最低要求
- Laravel 5.5
- PHP 7.0
作者
许可证
本软件包根据MIT许可证授权 - 有关详细信息,请参阅LICENSE
文件
贡献
欢迎提交拉取请求和问题。