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_legacyprefix) have been removed. - The service configuration file
config/admin-classic.yamlhas been deleted. Services are now registered unconditionally inconfig/services.yaml. - The dependency on
pimcore/admin-ui-classic-bundlehas been dropped entirely. Remove it from your project if it was only required by this bundle. MainListenerno longer subscribes to any Classic Admin events. The followingAdminEventssubscriptions have been removed — if you relied on any of them, migrate to the appropriate Studio UI events:AdminEvents::ASSET_GET_PRE_SEND_DATAAdminEvents::ASSET_LIST_BEFORE_BATCH_UPDATEAdminEvents::ASSET_LIST_BEFORE_UPDATEAdminEvents::ASSET_METADATA_PRE_SETAdminEvents::INDEX_ACTION_SETTINGSAdminEvents::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
StudioContextPermissionsSubscriberhas been added to handle Studio context permission checks.
BC Break: Collections::save() Signature Change
Collections::save()now formally acceptsarray $parameters = []as its signature. The previously deprecatedfunc_get_arg()-based workaround (introduced inv2.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$configurationout-parameter type was corrected from?Datato?Configuration(annotated with@param-out Configuration|null).Numeric::$minValueandNumeric::$maxValueare now typedfloat|null(previously documented asfloat). The return types ofgetMinValue()andgetMaxValue()are corrected accordingly tofloat|null.ManyToManyRelation::getClasses(): PHPDoc return type corrected toarray{classes?: string}.
PHP and Dependency Updates
- PHP minimum requirement raised to
~8.4. PHP8.5is now supported. - Support for PHP
8.3and Symfonyv6has been dropped. Symfony^7.3is now required. - Doctrine DBAL
enum → stringtype 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-phpv5.
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.