Package Data | |
---|---|
Maintainer Username: | AntonioCarlosRibeiro |
Maintainer Contact: | acr@antoniocarlosribeiro.com (Antonio Carlos Ribeiro) |
Package Create Date: | 2017-11-30 |
Package Last Update: | 2024-09-27 |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-12-19 03:08:23 |
Package Statistics | |
---|---|
Total Downloads: | 2,432,096 |
Monthly Downloads: | 27,274 |
Daily Downloads: | 1,079 |
Total Stars: | 116 |
Total Watchers: | 9 |
Total Forks: | 36 |
Total Open Issues: | 2 |
Config files getting bigger, harder to maintain and look at, every day. Why not just use YAML to load them?
Yaml::loadToConfig(config_path('myapp.yml'), 'my-app-conf');
Yaml::loadToConfig(config_path('myapp'), 'my-app-conf');
To load a directory with all your config files:
.
└── myapp
├── multiple
│ ├── alter.yml
│ ├── app.yml
│ └── second-level
│ └── third-level
│ ├── alter.yml
│ └── app.yml
├── single
└── single-app.yml
Then you would just have to use it like you usually do in Laravel
config('my-app-conf.multiple.second-level.third-level.alter.person.name')
repository: "{{ env('APP_NAME') }}"
path: "{{ storage_path('app') }}"
{{'format.version'}}
build:
mode: git-local #### other modes: git-remote or number
In case you need to deal with YAML directly, you can use these public methods:
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.
Which are simple bridges to Symfony's YAML.
Via Composer
$ composer require pragmarx/yaml
Publish your package as you would usually do:
$this->publishes([
__DIR__.'/../config/version.yml' => $this->getConfigFile(),
]);
Load the configuration in your boot()
method:
$this->app
->make('pragmarx.yaml')
->loadToConfig($this->getConfigFile(), 'my-package');
Or use the Facade:
Yaml::loadToConfig(config_path('myapp.yml'), 'my-package');
And it's merged to your Laravel config:
config('my-package.name');
This is a YAML file from another package using this package:
current:
major: 1
minor: 0
patch: 0
format: "{$major}.{$minor}.{$patch}"
cache:
enabled: true
key: pragmarx-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
This package is licensed under the MIT License - see the LICENSE
file for details
Pull requests and issues are welcome.