- Improve phpdoc for better phpstan validation
- Add support for enums
- Drop support for PHP 8.0
- Removed
PropertyTypeArray, which is superseded byPropertyTypeIterable. - Removed the deprecated
PropertyTypeIterable::getCollectionClass. UsePropertyTypeIterable::getTraversableClass - Removed the deprecated
PropertyTypeIterable::isCollection. UsePropertyTypeIterable::isTraversable JMSTypeParser::getTraversableClassreturnsTraversable::classinstead ofDoctrine\Common\Collections\Collectionfor general traversable properties.- Dropped support for PHP 7
- Adjusted code to not trigger warnings with PHP 8.4
- Removed deprecated
getDeserializeFormatmethod from date time - Use Attribute instead of Annotation
- Replaced
Liip\MetadataParser\ModelParser\LiipMetadataAnnotationParserwithLiip\MetadataParser\ModelParser\LiipMetadataAttributeParser - Replaced
@Preferredannotation with the#[Preferred]attribute
- Replaced
- Replaced
PropertyCollection::useIdenticalNamingStrategystatic method with thePropertyNamingStrategyInterface. If you need to change the property naming strategy, remove the call to the static method and instead pass a strategy instance to the parser. The library provides two implementations for the property naming strategy:IdenticalPropertyNamingStrategySnakeCasePropertyNamingStrategy(default).
- Add support for (union) discriminators and their related JMS attributes
#[UnionDiscriminator]and#[Discriminator]
- Test with PHP 8.3 - 8.5.
- DateTimeOptions now features a list of deserialization formats instead of a single string one. Passing a string instead of an array to its
__constructor is deprecated, and will be forbidden in the next version Similarly,getDeserializeFormat(): ?stringis deprecated in favor ofgetDeserializeFormats(): ?array - Added
PropertyTypeIterable, which generalizesPropertyTypeArrayto allow merging Collection informations like one would with arrays, including between interfaces and concrete classes - Deprecated
PropertyTypeArray, please prefer usingPropertyTypeIterableinstead PropertyTypeArray::isCollection()andPropertyTypeArray::getCollectionClass()are deprecated, including in its child classes, in favor ofisTraversable()andgetTraversableClass()- Added a model parser
VisibilityAwarePropertyAccessGuesserthat tries to guess getter and setter methods for non-public properties.
- Drop support for PHP 7.2 and PHP 7.3
- Support doctrine annotations
2.x
No changes since 0.6.1.
- Do not ignore methods that have no phpdoc but do have a PHP 8.1 attribute to make them virtual properties.
- When running with PHP 8, process attributes in addition to the phpdoc annotations.
- Support doctrine collections
- Support
identicalproperty naming strategy - Add support for the
MaxDepthannotation from JMS
- Support JMS Serializer
ReadOnlyPropertyin addition toReadOnlyto be compatible with serializer 3.14 and newer. - Support PHP 8.1 (which makes ReadOnly a reserved keyword)
- Allow installation with psr/log 2 and 3, to allow installation with Symfony 6
- Handle property type declarations in reflection parser.
- [Bugfix] Upgrade array type with
@var Type[]annotation - [Bugfix] When extending class redefines a property, use phpdoc from extending class rather than base class
- [Bugfix] Use correct context for relative class names in inherited properties/methods
- Support PHP 8, drop support for PHP 7.1
- Support JMS 3 and drop support for JMS 1
- [BC Break] Only if you wrote your own PropertyMetadata class and overwrote
getCustomInformation: That method now has the return type:mixedspecified.
- [Bugfix] Look in parent classes and traits for imports
- [Feature] Support to track custom metadata
- Initial release