abivia / hydration
Support for creating complex nested class structures from JSON/YAML objects.
Installs: 28 303
Dependents: 1
Suggesters: 0
Security: 0
Stars: 3
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/abivia/hydration
Requires
- php: ^8.1
 - 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 
stdClassobjects 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.