All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Support for PHP 8.3. and PHP 8.4.
- Code improvements to avoid type errors on runtime
- Implicitly nullable parameters to nullable (PHP 8.4 deprecation)
- Support for PHP 8.2.
- Support for typed properties (in addition to the annotated properties)
- [BREAKING] Type hints and return types
- [BREAKING] Constructor order of
Bindings
- [BREAKING] Argument order of
transform
andtransferRaw
inJsonDecoder
- Set dynamic properties only if
AllowDynamicProperties
attribute is set (on PHP 8.2. and greater) - Linting to
pint
- Unit tests to
pest
- Support for PHP 7.4.
- Support for using array-keys in
ArrayBinding
(#52, #55)
- Avoid IDE warnings when passing
Closure
toCallbackBinding
- Support for PHP 8
- To strict param type in
transform
method
- Another issue where CallbackBinding wasn't handled.
- Still handle CallbackBinding when property name doesn't match a JSON fieldname.
- Support for magic class properties
- Auto casing for json field - class properties mapping
- PHP CS Fixer for linting and fixing code style
- Unit tests to phpunit
- Support for PHP 7.2
DateTimeBinding
for parsing date string
- Update dependencies to be compatible with PHP 7.4
- Switch to PSR-12 linting
- Support for PHP 7.0 and 7.1
validate
function for checking theisRequired
flag for Bindings
- Transform
Binding
to an abstract class and unify functionality fromAliasBinding
,ArrayBinding
&FieldBinding
- Check for
isRequired
flag is only executed when applicable
JsonDecoder
instance as second parameter to callback function signature for CallbackBindings