Upgrade Notes
Upgrade to 2026.3.0
Skipping Element Persistence From a PreSaveEvent Listener
DataObject\PreSaveEventnow carries a skip flag: a listener can callsetSkipSave(true)to stop the import from persisting the current element. The element is not saved,DataObject\PostSaveEventis not dispatched, and the skip is written to the import log. Processing continues with the next record.- A skipped element that already exists is reloaded afterwards, so the changes the mapping applied to it in memory cannot leak into a later row that resolves the same element.
- The flag defaults to
false, so imports without such a listener behave exactly as before. No migration needed.
Upgrade to 2026.2.6
Frontend Build Ships as a Packaged Archive
- The compiled Studio frontend is no longer committed as an expanded
src/Resources/public/studio/build/directory. It now ships as a single archive (build-dist/build-<id>.zip) that is extracted intosrc/Resources/public/studio/build/automatically during cache warmup. - The extraction is provided by
pimcore/studio-ui-bundle, which this bundle already requires at^2026.2.6. No dependency change is needed. - Read-only filesystem deployments must run
bin/console cache:warmup(orcache:clear) during the build/deploy phase, while the bundle directory (usually belowvendor/) is still writable. Standard Pimcore deployments already do this. - When
assets:installruns in copy mode, runcache:warmupbefore it, otherwise no frontend assets are copied. If the filesystem becomes read-only before the first warmup, the bundle throwsBuildArchiveNotWritableException, because there is no build to serve.
Upgrade to 2026.1.0
PHP & Symfony Version Support
- Added support for
PHP8.5. - Removed support for
PHP8.3and Symfonyv6.
Removed Admin Classic / ExtJS UI
- Removed the
pimcore/admin-ui-classic-bundledependency. The bundle no longer implementsPimcoreBundleAdminClassicInterfaceand no longer usesBundleAdminClassicTrait. - Removed all ExtJS-based JavaScript and CSS paths.
getCssPaths()andgetJsPaths()were removed fromPimcoreDataImporterBundle. PimcoreAdminBundleis no longer registered as a dependent bundle.- The configuration panel is now implemented in Pimcore Studio.
Pimcore\Bundle\AdminBundle\Helper\QueryParamsis no longer used. It was replaced byDataTypeServiceInterface::extractSortingSettings().
Pimcore Studio
- Added the Pimcore Studio implementation of the Data Importer configuration panel, with the tabs Data Setup, Execution and Import Logs.
- Studio frontend assets are now shipped with the bundle.
Namespace Changes
- Changed namespace from
Pimcore\Log\ApplicationLoggertoPimcore\Bundle\ApplicationLoggerBundle\ApplicationLogger.
Messenger Transport Configuration
- The messenger transport DSN is configurable via the
%pimcore.messenger.transport_dsn_prefix%container parameter instead of being hardcoded todoctrine://default. The installer can now wire the transport DSN from environment variables such asPIMCORE_MESSENGER_TRANSPORT_DSN_PREFIX.
Interface & Return Type Changes
DataTypeServiceInterface: added the methodextractSortingSettings(?string $sort): array. Custom implementations of the interface must implement it.CronValidationResponse::isValid(): boolrenamed toCronValidationResponse::getIsValid(): bool.ImportProgressResponse::isRunning(): boolrenamed toImportProgressResponse::getIsRunning(): bool.PimcoreDataImporterBundle::getInstaller()return type changed from?InstallerInterfacetoInstallerInterface(non-nullable).
Class Visibility & Finalization
- Many classes have been marked
finaland/or@internal. Custom subclasses of these classes are no longer supported:CronScheduler,JobScheduler,SchedulerFactory: markedfinaland@internalPreviewData: markedfinaland@internalPimcoreDataImporterBundle: markedfinal- Various exception classes (
InvalidScheduleException, etc.): markedfinal
- Several
protectedmethods on final classes were changed toprivate. Subclasses overriding them have to be refactored. ConfigDataObjectController::saveAction()return type changed from?JsonResponsetoJsonResponse(non-nullable).Installer::getLastMigrationVersionClassName()return type changed from?stringtostring(non-nullable).
Doctrine
- Removed Doctrine enum mapping from the bundle configuration.
Dependency Updates
phpoffice/phpspreadsheetversion requirement bumped to^4.3 || ^5.1(dropped^2.2 || ^3.3).
API Schema Changes
UnitDataResponse: the schema property was renamed fromUnitListtounitList. Update clients consuming this response.
Update to Version 1.11
General
- Added support of
doctrine/dbalv4, dropped support ofdoctrine/dbalv2
Update to Version 1.10
General
- Dropped support of Pimcore 10, bumped minimum requirement of
pimcore/pimcoreto^11.2.