Skip to main content
Version: 2026.1

Upgrade Information

Following steps are necessary during updating to newer versions.

Upgrade to 2026.1.0

Removed Admin Classic UI / ExtJS

  • All ExtJS-based JavaScript (tag editors, class definition editors, admin panels, the configuration tree and editor panel) has been removed.
  • The legacy BackendController (src/Controller/Legacy/BackendController.php) and all Classic Admin routes (pimcore_asset_metadata_classdefinitions_legacy prefix) have been removed.
  • The service configuration file config/admin-classic.yaml has been deleted. Services are now registered unconditionally in config/services.yaml.
  • The dependency on pimcore/admin-ui-classic-bundle has been dropped entirely. Remove it from your project if it was only required by this bundle.
  • MainListener no longer subscribes to any Classic Admin events. The following AdminEvents subscriptions have been removed — if you relied on any of them, migrate to the appropriate Studio UI events:
    • AdminEvents::ASSET_GET_PRE_SEND_DATA
    • AdminEvents::ASSET_LIST_BEFORE_BATCH_UPDATE
    • AdminEvents::ASSET_LIST_BEFORE_UPDATE
    • AdminEvents::ASSET_METADATA_PRE_SET
    • AdminEvents::INDEX_ACTION_SETTINGS
    • AdminEvents::ASSET_GET_FIELD_GRID_CONFIG

Studio UI

  • The Metadata Definition editor and the full asset class editor (supporting all definition types with individual settings panels) are now implemented in Pimcore Studio UI.
  • A new StudioContextPermissionsSubscriber has been added to handle Studio context permission checks.

BC Break: Collections::save() Signature Change

  • Collections::save() now formally accepts array $parameters = [] as its signature. The previously deprecated func_get_arg()-based workaround (introduced in v2.1.0) has been removed entirely. Update any custom code that relied on the old implicit argument passing to use the explicit parameter instead.

Return Type and PHPStan Compliance Fixes

  • Helper::getFieldDefinition(string $name, ?Configuration &$configuration = null): the $configuration out-parameter type was corrected from ?Data to ?Configuration (annotated with @param-out Configuration|null).
  • Numeric::$minValue and Numeric::$maxValue are now typed float|null (previously documented as float). The return types of getMinValue() and getMaxValue() are corrected accordingly to float|null.
  • ManyToManyRelation::getClasses(): PHPDoc return type corrected to array{classes?: string}.

PHP and Dependency Updates

  • PHP minimum requirement raised to ~8.4. PHP 8.5 is now supported.
  • Support for PHP 8.3 and Symfony v6 has been dropped. Symfony ^7.3 is now required.
  • Doctrine DBAL enum → string type mapping has been removed from the test configuration. Remove it from your project's Doctrine configuration if it was only required by this bundle.

Installer

  • Installer::needsReloadAfterInstall() has been removed. The bundle installation no longer requires a page reload after completing.

Upgrade to 3.2.0

  • Added support for zircote/swagger-php v5.

Upgrade to 1.1.0

  • Make sure to run all bundle migrations with bin/console pimcore:bundle:migrate -b PimcoreAssetMetadataClassDefinitionsBundle.

Upgrade to Pimcore X

  • Update to latest (allowed) bundle version in Pimcore 6.9 and execute all migrations.
  • Then update to Pimcore X.