abivia / hydration
Support for creating complex nested class structures from JSON/YAML objects.
Installs: 17 039
Dependents: 1
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: >=7.4|^8.0
- ext-json: *
Requires (Dev)
- phpunit/phpunit: ^9.0-stable
- symfony/yaml: ^5.1@dev
- vimeo/psalm: ^4.10.0
Suggests
- symfony/yaml: For parsing YAML source files
README
Hydration is designed to make JSON and YAML configuration files more user intuitive while providing robust validation and smart creation of data structures via a fluent, easily configured interface.
Overview
Hydration:
- Populates complex data structures from user editable JSON or YAML sources.
- Allows your application to validate inputs, including ensuring that required properties are present.
Encoding (dehydration?) facilities can transform your application data structures into objects for encoding as JSON/YAML, automatically removing unwanted properties, rearranging properties into a user-friendly order, removing properties with default values and simplifying redundant constructs to improve usability.
If your application:
- has configurations with several levels of nesting,
- needs to validate user editable data in configuration files,
- is spending a lot of effort converting the stdClass objects created by
json_decode()
oryaml_parse()
to your application's class structures, or - is just using
stdClass
objects for configuration
then Hydration is here to help.
Installation
composer require abivia/hydration
Hydration uses the YAML Symphony parser and will suggest it at install.
Documentation
Documentation is available on the Hydration Site.
Contributing and Code of Conduct
Please see CONTRIBUTING.md.