Skip to content

v4.0.0

Choose a tag to compare

@kauffinger kauffinger released this 07 Feb 13:15
· 22 commits to main since this release
5512e3f

What's Changed

  • ref: use attributes instead of abandoned package & include original named fields in generator by @kauffinger in #6

🚀 v4.0

⚠️ Breaking Changes

JMS Serializer: Docblock Annotations → PHP 8 Attributes

All ~115 DTOs have been migrated from docblock annotations to native PHP 8 attributes. This requires jms/serializer ^3.14 (previously ^2.1 || ^3.5).

See migration example

Before:

/**
 * @XmlRoot("aktion")
 */
class Action
{
    /**
     * @Type("string")
     * @XmlAttribute
     * @SerializedName("aktionart")
     */
    protected string $actionType = '';
}

After:

#[XmlRoot(name: 'aktion')]
class Action
{
    #[Type('string')]
    #[XmlAttribute]
    #[SerializedName('aktionart')]
    protected string $actionType = '';
}

doctrine/annotations Removed

The doctrine/annotations package is no longer required and has been dropped as a dependency. If your application relied on it being pulled in transitively, add it to your own composer.json.

Minimum jms/serializer Version Bumped

The constraint changed from ^2.1 || ^3.5 to ^3.14. JMS Serializer v2.x is no longer supported. Version 3.14+ is required for PHP 8 attribute support.

Helper Functions Are Now Namespaced

All helper functions moved from the global namespace to Innobrain\OpenImmo\Helpers. A Rector rule is provided for automated migration:

vendor/bin/rector process app/ --config vendor/innobrain/laravel-openimmo/rector-migrate-helpers.php

See UPGRADE.md for details.

License Changed

The license changed from MIT to GPL-3.0-or-later.


✨ New Features

Original (German) DTOs

A parallel set of DTOs under Innobrain\OpenImmo\Dtos\Original preserves the original German XSD names. German helper functions are available under Innobrain\OpenImmo\Helpers\Original.

Full Changelog: v3.3.3...v4.0.0