Skip to content

3.4.4.1853

Choose a tag to compare

@ludekvodicka ludekvodicka released this 14 Apr 07:13
214f0f9

Changes in version 3.4.4.1853

  • Doctrine2: added module-level 'property-visibility' setting (private/protected/public). Enables using PHP 8.4 property hooks by exporting entity properties as public, removing need for getter/setter boilerplate. Configure per bundle in module's Doctrine2 configuration. (New!)
  • Doctrine2: added module-level "property-visibility" setting (private/protected/public) (New!)
  • PHP 8.1+ readonly support. Added readonly as a recognized PHP property/class modifier. Entities using readonly properties (public readonly string $name) or readonly class declarations now import and export correctly.
  • PHP 8.1 enum support: parser now correctly handles enum declarations, enum cases with values, and enums implementing interfaces
  • PHP 8.1 intersection type support: parser handles Type1&Type2 syntax in property type declarations
  • PHP 8.0+ keyword support: parser recognizes match expressions, arrow functions (fn), and yield statements
  • PHP 8.2 DNF type support: parser handles parenthesized compound types like (Countable&Iterator)|null in property declarations
  • Fixed: PHP import now correctly resolves use statement references (e.g., use Entity\User\User) when used in targetEntity and other ::class expressions, instead of incorrectly prepending the current file's namespace.
  • Fixed: PHP import now correctly handles fully qualified class references with leading backslash (e.g., \Application\Entity\File::class) in targetEntity and other annotations, instead of incorrectly prepending the current namespace
  • Doctrine2: Fixed PHP grouped use statement import, Skipper now correctly resolves class references from grouped declarations like use Customer{User, User\Team}
  • Fixed grammar in error messages (doesn't exists -> doesn't exist) and improved ORM/MVC framework error message wording
  • Fixed case-insensitive annotation import: annotations with non-standard casing (e.g. @Orm\column instead of @Orm\Column) are now correctly recognized during import