Skipper 3.4.4: modern PHP support
Sent April 29, 2026 · Release · Skipper 3.4.4
Skipper 3.4.4 was released in April 2026. It handles PHP 8.0 to 8.2 syntax such as readonly properties, enums and intersection types during import and export. For Doctrine2 it added the import of traits and a module setting for the visibility of generated properties.
Skipper speaks modern PHP! Version 3.4.4 is ready for you.
Hi everyone,
We hope you're doing well! We're excited to be back with Skipper 3.4.4, and this one is packed with features that many of you have been asking for.
The highlight? Skipper now fully understands modern PHP 8.0-8.2 syntax, so your readonly properties, enums, intersection types, and more are handled seamlessly during import and export.
The new version is available on the Skipper download site. Or you can just launch the application and the auto-update system will take care of it for you.
And what's new?
Modern PHP support (PHP 8.0-8.2)
Skipper now fully recognizes and handles the latest PHP language features:
- Readonly properties (PHP 8.1+) - correctly imported and preserved during export
- Enums (PHP 8.1) - native enum declarations, including backed enums with case definitions
- Intersection types (PHP 8.1) - combined type constraints like Countable&Iterator
- DNF types (PHP 8.2) - compound types like (A&B)|null are correctly parsed
- Match expressions, arrow functions, and generators (PHP 8.0+) - no longer break annotation detection
Doctrine2: Trait support
Skipper can now import Doctrine2 projects that use traits to share ORM-annotated fields across entities. When an entity uses a trait, all annotated fields and associations are automatically flattened into the entity during import. Multiple and nested traits are fully supported. You can enable or disable this behavior in your project import settings.
Doctrine2: Property visibility control
A new module-level setting lets you control the visibility (public, protected, or private) of generated properties in Doctrine2 export, giving your team fine-grained control over code generation output.
PHP import reliability
We've also fixed several important issues that improve the reliability of importing large PHP projects, including grouped use statements, fully qualified class references, case-insensitive annotation matching, and better error messages throughout.
For the complete list of changes, visit the Skipper changelog.
Coming soon: AI-powered workflows
We're working on a brand new set of features that connect Skipper with AI agents. Our goal is to let you use AI to interact with your data models, generating entities, suggesting relationships, and streamlining your workflow in ways that weren't possible before. Stay tuned for more details in upcoming releases!
Do you have any feedback for us?
We'd love to hear from you! Whether you have ideas for future improvements, encounter any issues, or just want to share how you're using Skipper, please reach out to us through our support forum or email us at [email protected].
Thank you for being part of the Skipper community!
Have a wonderful day!
Your Skipper Team
Changes in version 3.4.4.1854
- 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
- Doctrine2 simple traits support — all traits are imported and flattened directly to the entities
- 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
- Fixed empty region remaining after Doctrine2 trait import flattening
Build 3.4.4.1854, released April 23, 2026. All previous releases
Try the latest Skipper version
DownloadFREE TRIAL