Download the PHP package dallgoot/yaml without Composer
On this page you can find all versions of the php package dallgoot/yaml. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Table of contents
Download dallgoot/yaml
More information about dallgoot/yaml
Files in dallgoot/yaml
Download dallgoot/yaml
More information about dallgoot/yaml
Files in dallgoot/yaml
Please rate this library. Is it a good library?
Informations about the package yaml
Dallgoot : YAML library for PHP - Beta
PHP library to load and parse YAML file to coherent PHP datatypes equivalent
Installation
- Dependencies are only useful for building documentation or for code contribution, so the "--update-no-dev" prevent from downloading and managing packages that you probably won't use.
You first need Composer and PHP ^8.1.14
Usage
See examples folder
Features
- consistent PHP datatypes :
- object for mappings
- array for sequences
- common scalars : string, integer, float, INF, NAN
- JSON, DateTime(option), etc.
- specific types (objects)
- YamlObject for each Yaml content (multi-documents YAML is an array of YamlObject)
- Compact for compact/short YAML syntax
- Tagged object when tag is not determinable
- recover from some parsing errors
- tolerant to tabulations
- debug levels :
- 1 : print each line Node Type class and exit
- 2 : print Loader global tree structure and exit
- 3 : print each document NodeList and exit
Support
- YAML specifications version 1.2
- multi-line values (simple|double quoted or not, compact mapping|sequence or JSON)
- multiple documents in a content (file or string)
- compact syntax for mappings and sequences
- comments (not yet implemented)
- references (option : enabled by default)
- tags with behaviour customization (overriding for common(CoreSchema), or specifying for custom) via implementing Tag/SchemaInterface.
What's different from other PHP Yaml libraries ?
YAML version supported | coherent data types | multiple documents | JSON format validation | complex mapping | real reference behaviour | custom tags handling | |
---|---|---|---|---|---|---|---|
Symfony Yaml | 1.2 | ❌ | ❌ | ❌ | ❌ | ❌ | ✔️ |
php-yaml | 1.1 | ❌ | ✔️ | ❌ | ❌ | ❌ | ✔️ |
syck | 1.0 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
spyc | 1.0 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
Dallgoot/Yaml | 1.2 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
- coherent data types (see coherence.md for explanations)
- JSON format validation (Option, Note: if valid as per PHP function json_encode)
- complex mapping (Note: keys are JSON formatted strings)
- real reference behaviour : changing reference value modify other reference calls
Contributing
Only contributions concerning bug fixes will be review ATM. Requests for features will be dealt with after reading/writing YAML is considered bug free (and al current Options are implemented)
ToDo
- Code coverage : target 100%
- Benchmarks against other libs
Improvements
- Examples of each function of the API
- implement specific unit test for each YAML spec. invalid cases (what must not happen)
- DUMPER:
- implement/verify Dumper::Options
- better/more precise errors identification (Yaml validation) with explanation in YAML content
- Unicode checking (???)
- OPTION : parse dates as PHP DateTime object
- OPTION: Force renaming key names that are not valid PHP property name
- TAG : function for 'php/object' that provides the correct namespace to build
- NEON compatibility???
- make immutable YamlObject
Performances
- TBD
- improved memory using SplFixedArray instead of regular arrays where possible
Sponsor
Thanks
All versions of yaml with dependencies
PHP Build Version
Package Version
Requires
php Version
>=8.1
ext-json Version *
ext-pcre Version *
ext-spl Version *
lib-pcre Version *
ext-json Version *
ext-pcre Version *
ext-spl Version *
lib-pcre Version *
The package dallgoot/yaml contains the following files
Loading the files please wait ....