Skip to content

Conversation

@Prokyonn
Copy link
Member

Q A
Bug fix? no
New feature? no
BC breaks? no
Deprecations? no
Fixed tickets fixes #issuenum
Related issues/PRs #issuenum
License MIT

What's in this PR?

Adds support for Sulu 3.0

To Do

  • Create documentation

Changed FormFieldTypePool and TitleProviderPool constructors to accept
iterable instead of array, enabling Symfony's tagged_iterator injection.
The TaggedServiceCollectorCompilerPass was removed in Sulu 3.0.
Service collection is now handled by Symfony's native tagged_iterator.
- PropertiesXmlLoader: Use AdminBundle's AbstractLoader and PropertiesXmlParser
- DynamicFormMetadataLoader: Remove FormMetadataMapper dependency (removed in Sulu 3.0),
  add locales parameter, update to locale-independent caching
- Use tagged_iterator for pool services
- Update service references (sulu_page.* -> sulu_admin.*)
- Add locales parameter to DynamicFormMetadataLoader
- Remove FormWebsiteController service registration
The controller extended DefaultController which was removed in Sulu 3.0.
Static forms are deprecated and should not be used.
- Add SingleFormSelectionPropertyResolver with resourceCallback for entity + serialized data
- Add FormResourceLoader for batch loading forms by ID
- Add FormRepository::loadByIds method
- Add sulu_form_build Twig function for render-time form building
- Remove old SingleFormSelection content type
- Add UPGRADE-3.0.md with migration guide
- Rename UPGRADE.md to UPGRADE-2.x.md
…eTitleProvider

- Replace isMasterRequest() with isMainRequest() in event listeners
- Replace getMasterRequest() with getMainRequest() in StructureTitleProvider
- Refactor StructureTitleProvider to use DimensionContentInterface instead of removed StructureInterface
- Update UPGRADE-3.0.md with migration notes
- Replace ListRepresentation with PaginatedRepresentation
- Fix DateTime vs DateTimeImmutable type errors
- Remove ClassResourceInterface from controllers (removed in FOS REST 3.0)
- Use Request::query->getString() instead of Request::get() with is_string checks
- Fix type annotations and assertions across multiple files
- Regenerate PHPStan baseline
$this->assertEquals('attachment', $fields->getDefaultType());
$this->assertEquals([
$this->assertEquals('text', $fields->getDefaultType());
$this->assertEqualsCanonicalizing([
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a good point, how does 2.6 sort their State fields? Now they're no longer sorted the same way. We could just register the FormTypes with a priority attribute now to force a sorting.

Prokyonn and others added 4 commits December 11, 2025 11:12
- Remove PHP 7.2, 7.4, 8.0, 8.1 (incompatible with Sulu 3.0 requirement of PHP ^8.2)
- Add PHP 8.2 with lowest dependencies test
- Add PHP 8.5 with dev stability for future compatibility
- Update MySQL from 5.7 to 8.0
- Update PostgreSQL from 12.5 to 14
- Remove phpunit-9.xml.dist (PHPUnit 10/11 only now)
- Update all database serverVersion parameters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants