Skip to main content
Version: 2026.2

Upgrade Information

The following steps are necessary during updating to newer versions.

Upgrade to 2026.1.0

PHP & Symfony Version Support

  • Added support for PHP 8.5.
  • Removed support for PHP 8.3 and Symfony v6.

Removed Admin Classic / ExtJS UI

  • Removed the pimcore/admin-ui-classic-bundle dependency. The bundle no longer implements PimcoreBundleAdminClassicInterface or uses BundleAdminClassicTrait.
  • Removed all ExtJS-based JavaScript and CSS paths (getCssPaths() and getJsPaths() methods removed from PimcoreDataQualityManagementBundle).
  • PimcoreAdminBundle is no longer registered as a dependent bundle.
  • TreeBadgeService and TreeBadgeServiceInterface have been removed (they were @internal).

Interface & Return Type Changes

  • RuleDefinitionInterface::getSuggestion(): The parameter array $objectData has been replaced by Concrete $object. Custom rule definitions implementing this interface must accept a Pimcore\Model\DataObject\Concrete instance instead of an array.
  • AbstractRuleDefinition::getSuggestion(): Same change as above. Custom classes extending AbstractRuleDefinition must update their getSuggestion() signature from array $objectData to Concrete $object.
  • ScoreServiceInterface::calculateScores(): Added a new required parameter array $fieldDefinitions between $dataObject and $skipSaving. Custom implementations of ScoreServiceInterface must be updated.
    • Old: calculateScores(Concrete $dataObject, bool $skipSaving = false): void
    • New: calculateScores(Concrete $dataObject, array $fieldDefinitions, bool $skipSaving = false): void
  • DetailWidgetHydratorInterface::hydrate(): The parameter array $objectData has been replaced by Concrete $object. This interface is @internal.
  • RuleDataHydratorInterface::hydrate(): The parameter array $objectData has been replaced by Concrete $object. This interface is @internal.

Messenger Transport Configuration

  • The messenger transport DSN is now configurable via the %pimcore.messenger.transport_dsn_prefix% container parameter instead of being hardcoded to doctrine://default. This lets the installer wire the transport DSN from environment variables (for example PIMCORE_MESSENGER_TRANSPORT_DSN_PREFIX).

Pimcore Studio Enhancements

  • Added Studio class editor field type support for the Data Quality field definition, including rule definition configuration via Pimcore Studio.

Doctrine

  • Removed Doctrine enum mapping from the bundle test configuration.

Upgrade to 1.6.0

  • Added Pimcore Studio Backend Bundle support.
  • [Custom Rules] The data structure of the getSuggestion() method's object parameter differed between Admin Classic and Pimcore Studio at the time. This distinction no longer applies: since the 2026.1.0 upgrade, getSuggestion() always receives a Pimcore\Model\DataObject\Concrete instance. See Custom Rule Definition for the current signature.