Upgrade Notes
Pimcore 11.2.4 / 11.2.3.1 / 11.1.6.5
Assets Thumbnails
- Thumbnail generation for Assets, Documents and Videos now only support the following formats out of the box:
'avif', 'eps', 'gif', 'jpeg', 'jpg', 'pjpeg', 'png', 'svg', 'tiff', 'webm', 'webp'. - You can extend this list by adding your formats on the bottom:
pimcore:
assets:
thumbnails:
allowed_formats:
- 'avif'
- 'eps'
- 'gif'
- 'jpeg'
- 'jpg'
- 'pjpeg'
- 'png'
- 'svg'
- 'tiff'
- 'webm'
- 'webp'
- 'pdf' # Add your desired format here
- High resolution scaling factor for image thumbnails has now been limited to a maximum of
5.0. If you need to scale an image more than that, you can use themax_scaling_factoroption in the configuration.
pimcore:
assets:
thumbnails:
max_scaling_factor: 6.0
Pimcore 11.2.0
Elements
[Documents]:
- Using
outputFormatconfig forPimcore\Model\Document\Editable\Dateeditable is deprecated, useoutputIsoFormatconfig instead. - Service
Pimcore\Document\Renderer\DocumentRendereris deprecated, usePimcore\Document\Renderer\DocumentRendererInterfaceinstead. - Page previews and version comparisons can now be rendered using Gotenberg v8.
To replace Headless Chrome, upgrade to Gotenberg v8 and upgrade the client library:
composer require gotenberg/gotenberg-php:^2
[Data Objects]:
- Methods
getAsIntegerCast()andgetAsFloatCast()of thePimcore\Model\DataObject\Dataclass are deprecated now. - All algorithms other than
password_hashused in Password Data Type are now deprecated, please usepassword_hashinstead. MultiSelectOptionsProviderInterfaceis deprecated, please useSelectOptionsProviderInterfaceinstead.
General
[Localization]
- Services
Pimcore\Localization\LocaleServiceandpimcore.localeare deprecated, usePimcore\Localization\LocaleServiceInterfaceinstead.
[Navigation]
- Add rootCallback option to
Pimcore\Navigation\Builder::getNavigation()
[Symfony]
- Bumped Symfony packages to "^6.4".
[Value Objects]
- Added new self validating Value Objects:
Pimcore\ValueObject\BooleanArrayPimcore\ValueObject\IntegerArrayPimcore\ValueObject\PathPimcore\ValueObject\PositiveIntegerPimcore\ValueObject\PositiveIntegerArrayPimcore\ValueObject\StringArray
[!WARNING]
For environment variable consistency purposes in boostrap, please fixpublic/index.phpin project root by movingBootstrap::bootstrap();just above$kernel = Bootstrap::kernel()line instead of outside the closure. Alternatively can be fixed by appling this patchYou may also need to adjust your
bin/consoleto the latest version of the skeleton: https://github.com/pimcore/skeleton/blob/11.x/bin/console
Pimcore 11.1.0
Elements
[All]:
- Properties are now only updated in the database with dirty state (when calling
setPropertiesorsetProperty). - Added hint for second parameter
array $params = []toElement/ElementInterface::getById Pimcore\Helper\CsvFormulaFormatterhas been deprecated. UseLeague\Csv\EscapeFormulainstead.
[Assets]:
- Asset Documents background processing (e.g. page count, thumbnails & search text) can be disabled with config:
pimcore:
assets:
document:
thumbnails:
enabled: false #disable generating thumbnail for Asset Documents
process_page_count: false #disable processing page count
process_text: false #disable processing text extraction
scan_pdf: false #disable scanning PDF documents for unsafe JavaScript. - Video Assets spherical metadata is now calculated in the backfground instead of on load.
[Data Objects]:
- Property
$fieldtypeof thePimcore\Model\DataObject\Dataclass is deprecated now. Use thegetFieldType()method instead. - Method
getSiblings()output is now sorted based on the parent sorting parameters (same asgetChildren) instead of alphabetical. - Input fields
CheckValiditychecks the column length.
[Documents]:
- Removed
allow listfilter fromPimcore\Model\Document\Editable\Linkto allow passing any valid attributes in the config. - Property
Pimcore\Navigation\Page::$_defaultPageTypeis deprecated.
General
[Authentication]:
The tokens for password reset are now stored in the DB and are one time use only (gets expired whenever a new one is generated or when consumed).
- [Static Page Generator]: Static pages can be generated based on sub-sites main domain using below config:
and adapting NGINX config:
pimcore:
documents:
static_page_router:
use_main_domain: true #generates pages in path /public/var/tmp/pages/my-domain.com/en.htmlmap $args $static_page_root {
default /var/tmp/pages/$host;
"~*(^|&)pimcore_editmode=true(&|$)" /var/nonexistent;
"~*(^|&)pimcore_preview=true(&|$)" /var/nonexistent;
"~*(^|&)pimcore_version=[^&]+(&|$)" /var/nonexistent;
}
map $uri $static_page_uri {
default $uri;
"/" /%home;
}
[Core Cache Handler]:
- Remove redundant cache item tagging with own key.
[Installer]:
- Passing
--install-bundlesas empty option now installs the required bundles.
[Maintenance Mode]:
- Maintenance mode check is handled via
tmp_storein database. Using maintenance mode files is deprecated. - Deprecated following maintenance-mode methods in
Pimcore\Tool\Admin:activateMaintenanceMode, useMaintenanceModeHelperInterface::activateinstead.deactivateMaintenanceMode, useMaintenanceModeHelperInterface::deactivateinstead.isInMaintenanceMode, use `MaintenanceModeHelperInterface::isActive instead.isMaintenanceModeScheduledForLogin,scheduleMaintenanceModeOnLogin,unscheduleMaintenanceModeOnLoginwill be removed in Pimcore 12.
Pimcore 11.0.7
- Putting
nullto thePimcore\Model\DataObject\Data::setIndex()method is deprecated now. Only booleans are allowed.
Pimcore 11.0.0
API
[General] :
- Attention: Added native php types for argument types, property types, return types and strict type declaration where possible. Double check your classes which are extending from Pimcore classes and adapt if necessary.
[Bootstrap] :
- Relying on
Pimcore\Bootstrap::bootstrap()for autoloading classes will not work anymore. - Removed unused constant
PIMCORE_APP_BUNDLE_CLASS_FILE
[Events] :
- Event
pimcore.element.note.postAddhas been removed. Usepimcore.note.postAddinstead. Note: The event type changed fromElementEventtoModelEvent. - Report Event
pimcore.admin.reports.save_settingshas been renamed topimcore.reports.save_settings. - Moved
SEARCH_LIST_BEFORE_FILTER_PREPARE,SEARCH_LIST_BEFORE_LIST_LOAD,SEARCH_LIST_AFTER_LIST_LOAD,QUICKSEARCH_LIST_BEFORE_LIST_LOADandQUICKSEARCH_LIST_AFTER_LIST_LOADevents fromPimcore\Bundle\AdminBundle\Event\AdminEventstoPimcore\Bundle\SimpleBackendSearchBundle\Event\AdminSearchEvents. AdminEvents::ELEMENT_PERMISSION_IS_ALLOWEDhas been renamed toPimcore\Event\ElementEvents::ELEMENT_PERMISSION_IS_ALLOWED.
[Installer] :
- Removed
--ignore-existing-configoption from thepimcore:installcommand. Thesystem.yamlfile is not used anymore and therefore this flag became obsolete. See preparing guide - Changed the return type of
Pimcore\Extension\Bundle\Installer\InstallerInterface::getOutputtoBufferedOutput | NullOutput. - Adding
BundleSetupEventEvent. Bundles that are available for installation can be customized in the installing process via an Eventlistener or EventSubscriber. - Bundles can be added and removed. You can set a flag if you want to recommend the bundle.
[Logging] :
- Removed constant
PIMCORE_PHP_ERROR_LOG - Bumped
monolog/monologto ^3.2 andsymfony/monolog-bundleto ^3.8 (which adds support for monolog v3). Please adapt your custom implementation accordingly, eg. log records are nowLogRecordObjects instead of array. - Removed the ability to use the
pimcore_logGET parameter.
[Miscellaneous] :
- Marked
Pimcore\Model\User\AbstractUserandPimcore\Model\User\UserRoleclasses as abstract. - Marked
Pimcore\Fileas internal. This class shouldn't be used anymore, useSymfony\Component\Filesysteminstead.
[Further Removed API Features] :
- Removed
getChilds,setChildsandhasChildusegetChildren,setChildrenandhasChildreninstead. - Removed PhpArrayTable class
- Removed deprecated
PhpArrayFileTable. - Removed
Pimcore\Db\Helper::insertOrUpdate()method, please usePimcore\Db\Helper::upsert()instead. - Removed deprecated
Pimcore\Db\ConnectionInterfaceinterface,Pimcore\Db\Connectionclass andPimcore\Db\PimcoreExtensionsTraittrait. - Removed
JsonListing, please see #12877 for details. - Deprecated MissingDependencyException has been removed.
- Removed deprecated getMasterRequest() in favor of getMainRequest().
- Removed the deprecated method
Kernel::getRootDir(), useKernel::getProjectDir()instead. - Removed methods
Pimcore\Tool\Admin::isExtJS6(),\Pimcore\Tool\Admin::getLanguageFile(),\Pimcore\Tool::exitWithError(). - Removed the following methods from
Pimcore\File:mkdir,put,getFileExtension,setDefaultMode,getDefaultMode,setDefaultFlagsandrename.
[Further relevant Third Party Dependency Upgrades] :
- Bumped
friendsofsymfony/jsrouting-bundleto version^3.2.1 - Bumped Symfony packages to "^6.2".
- Cleanup unused Symfony packages from composer.json, eg.
form,web-link, see also #13097 - Bumped
mjaschen/phpgeoto "^4.0". - Bumped
codeception/codeceptionversion to ^5.0. Now, Pimcore is using a new directory structure for tests (Codeception 5 directory structure). For details, please see #13415 - Bumped
matomo/device-detectorto ^6.0. - Bumped minimum requirement of
presta\sitemap-bundleto^3.3, dropped support forv2and removed related BC Layer. - Bumped
league/flysystem-bundleminimum requirement to ^3.0 (which introducesdirectoryExists(),has()methods and fixes support fordirectory_visibilityconfiguration option). Please bump the Flysystem Adapters requirement accordingly to^3.0in your projectcomposer.json.
Admin UI
[General] :
- Removed
admineras built-in database management tool. - Removed deprecated Admin Event classes:
Pimcore\Event\Admin\*,Pimcore\Event\AdminEvents,Pimcore\Event\Model\*. - Changed the navigation building process. It is easier to add main and submenus. For details please see Adding Custom Main Navigation Items
[Authentication] :
- Removed support old authentication system
- Removed BruteforceProtection, use Symfony defaults now
- Removed PreAuthenticatedAdminToken
- Admin Login Events
- Removed
AdminEvents::LOGIN_CREDENTIALS(pimcore.admin.login.credentials) event. UsePimcore\Bundle\AdminBundle\Event\Login\LoginCredentialsEventinstead. - Removed
AdminEvents::LOGIN_FAILED(pimcore.admin.login.failed) event. UseSymfony\Component\HttpFoundation\Request\LoginFailureEventinstead.
- Removed
- Removed Pimcore Password Encoder factory,
pimcore_admin.security.password_encoder_factoryservice andpimcore.security.factory_typeconfig. - Removed deprecated method
Pimcore\Bundle\AdminBundle\Security\User::getUsername(), usegetIdentifier()instead. - Deprecated method
Pimcore\Tool\Authentication::authenticateHttpBasic()has been removed. - Deprecated method
Pimcore\Tool\Authentication::authenticatePlaintext()has been removed.
[JS] :
- Packaged some JS libraries with encore
- Removed deprecated JS functions (
ts()andpimcore.helpers.addCsrfTokenToUrl()) - Removed Plugin Broker BC layer for JS events
[Security] :
- Enabled Content Security Policy by default.
- Implemented Symfony HTML sanitizer for WYSIWYG editors. Please make sure to sanitize your persisted data with help of this script.
Also, when using API to set WYSIWYG data, please pass encoded characters for html entities
<,>,&etc. The data is encoded by the sanitizer before persisting into db and the same encoded data will be returned by the API. For configuration details see also WYSIWYG config
Bundles
[Bundles General] :
- Removed support for loading bundles through
extensions.php. - Removed Extension Manager(
Tools -> Bundles & Bricksoption) from Admin UI. - Removed commands:
pimcore:bundle:enable,pimcore:bundle:disable. - Removed
dontCheckEnabledconfig support from Areablock editable. - The default behaviour of asset install and
Composer::installAssetsis changed, which means that the files (like css, js) will be copied instead of symlinked. So, you have to run the commandbin/console assets:installfor every change. Behavior can be adapted incomposer.jsonas follows:
"extra": {
"symfony-assets-install": "relative"
}
[Extracted Core Functionality] :
-
Functionality that was moved into its own bundle inside pimcore/pimcore repository and needs to be enabled during Pimcore install or in
config/bundles.php:-
[Application Logger] Application logger has been moved into
PimcoreApplicationLoggerBundle. Please pay attention to the new namespaces for the classes from this bundle. -
[CustomReports] have been moved into PimcoreCustomReportsBundle
- Config
pimcore:custom_reportshas been removed, please usepimcore_custom_reports:in the PimcoreCustomReportsBundle insteand.
- Config
-
[Glossary] has been moved into PimcoreGlossaryBundle
pimcoreglossary()tag has been removed, please use thepimcore_glossarytwig filter.- Config
pimcore:glossaryhas been removed, please usepimcore_glossary:in the PimcoreGlossaryBundle instead.
-
[Search] has been moved into PimcoreSimpleBackendSearchBundle
- The search functionality has been extracted to its own bundle (
PimcoreSimpleBackendSearchBundle) - The
pimcore:search-backend-reindexcommand has been moved to the search bundle - Search icons all over Pimcore won't be available without the search bundle
- The inline search feature for some relations won't be available without the search bundle
- The "advanced" GDPR search has also been moved. We provide a basic search to cover the fundamental functionality if the search bundle isn't available.
- The asset, object, document and quick search have been moved to the search bundle
- All backend-search related files have been moved to the search bundle (please check custom implementations if you rely on any backend-search component!)
- Added additional messenger transport for backend search (
pimcore_search_backend_message) - Moved
FullTextIndexOptimizeTaskcommand to SimpleBackendSearchBundle. According to that the namespace changed fromPimcore\Maintenance\Tasks\FullTextIndexOptimizeTasktoPimcore\Bundle\SimpleBackendSearchBundle\Task\Maintenance\FullTextIndexOptimizeTask.
- The search functionality has been extracted to its own bundle (
-
[SEO] Document Editor, Redirects, Sitemaps, robots.txt and HTTP Errors has been moved into PimcoreSeoBundle
-
[Staticroutes] has been moved into PimcoreStaticRoutesBundle
- Config
pimcore:staticroutes:has been removed, please usepimcore_static_routes:in the PimcoreStaticRoutesBundle instead.
- Config
-
[UUID] has been moved into PimcoreUuidBundle
- Config
pimcore:general:instance_identifierhas been removed, please usepimcore_uuid:instance_identifierin the PimcoreUuidBundle instead. Please runbin/console config:dump pimcore_uuidto see more about the instance identifier config after installing the bundle.
- Config
-
[WordExport] has been moved into PimcoreWordExportBundle
-
[Xliff Translation] Import/Export and related Events have been moved into PimcoreXliffBundle. Please check and adapt the Events' namespaces.
-
[WYSIWYG-Editor] The default editor changed from
CKEditortoTinyMCEand has been moved into PimcoreTinymceBundle. Please adapt custom configuration and extend the html sanitizer for supporting the required html elements in wysiwyg editor.
-
-
Functionality that was moved into its own bundle and own repository and needs to installed via composer as well as activated in
config/bundles.php:- [AdminBundle] Admin Bundle has been moved to
pimcore/admin-ui-classic-bundlepackage.- Please require in your project composer.json file and register the bundle in Kernel:
public function registerBundlesToCollection(BundleCollection $collection): void
{
// pimcore bundles
$collection->addBundle(new \Pimcore\Bundle\AdminBundle\PimcoreAdminBundle\PimcoreAdminBundle(), 60);
}- Removed deprecated methods
getTranslator(),getBundleManager()andgetTokenResolver()from thePimcore\Bundle\AdminBundle\Controller\AdminController
- [System Info & Tools] Php Info and Opcache Status has been moved into
pimcore/system-info-bundlepackage. - [File Explorer] System File explorer has been moved to
pimcore/system-file-explorerpackage. - [Web2Print] has been moved to
pimcore/web-to-print-bundlepackage.- Config
pimcore:documents:web_to_printhas been removed, please usepimcore_web_to_printin the PimcoreWebToPrintBundle instead. - Print related Events have been moved into PimcoreWebToPrintBundle. Please check and adapt the Events' namespaces.
- Deprecated HeadlessChrome Processor has been removed. Please use Chromium Processor instead.
- Deprecated WkHtmlToPdf Processor has been removed.
- Introducing Web2print processor
Chromiumthat usechrome-php/chrome(same as the page previews), as replacement of HeadlessChrome processor which required NodeJS.
- Config
- [Personalization and targeting] has been moved to
pimcore/personalizationpackage.- Config
pimcore:targeting:has been removed, please usepimcore_personalization.targetingin the PimcorePersonalizationBundle instead. - Targeting is now using the opt-in approach and will not be enabled by default. Add following config to enable it:
pimcore_personalization:
targeting:
enabled: true - Config
- [Google Marketing] has been moved to
pimcore/google-marketing-bundlepackage.- Config
pimcore:services:googlehas been removed, please usepimcore_google_marketingin the PimcoreGoogleMarketingBundle instead. - [Google] Classes Google\Cse and Google\Cse\Item have been removed.
- Config
- [Newsletter] has been moved to
pimcore/newsletter-bundlepackage.- Config
pimcore:newsletterhas been removed, please usepimcore_newsletterin the PimcoreNewsletterBundle instead. - Newsletter related Events have been moved into PimcoreNewsletterBundle. Please check and adapt the Events' namespaces.
- Service ids changed from
pimcore.newslettertopimcore_newslettere.g.pimcore_newsletter.document.newsletter.factory.default
- Config
- [AdminBundle] Admin Bundle has been moved to
Core
[Commands] :
- Removed
webmozarts/console-parallelizationdependency to make parallelization optional. If you still want to use parallelization for console commands, please add the dependency to your owncomposer.json. - Removed the deprecated
Parallelization::configureParallelization()method. - Removed the deprecated trait
ConsoleCommandPluginTrait.
[Configuration] :
Pimcore\Config\Confighas been removed, see #12477. Please use the returned array instead, e.g.$web2printConfig = Config::getWeb2PrintConfig();
$web2printConfig = $web2printConfig['chromiumSettings'];- Removed legacy callback from LocationAwareConfigRepository. Therefore, configurations in the old php file format are not supported anymore.
- Removed setting write targets and storage directory in the environment file. Instead, use the symfony config
- Renamed default directories from
image-thumbnailsandvideo-thumbnailstoimage_thumbnailsandvideo_thumbnails. - Removed deprecated services/aliases:
Pimcore\Templating\Renderer\TagRenderer,pimcore.cache.adapter.pdo,pimcore.cache.adapter.pdo_tag_aware - Rename config files from
*.ymlto*.yaml. Note that we now usesystem_settings.yamlas config file and notsystem.yml - System Settings are now implementing the LocationAwareConfigRepository. See preparing guide
- The config node
pimcore.adminand related parameters are moved to AdminBundle directly underpimcore_adminnode. Please adapt your parameter usage accordingly eg. instead ofpimcore.admin.unauthenticated_routes, it should bepimcore_admin.unauthenticated_routes - The deprecated config node
pimcore.error_handlingand the related parameterpimcore.response_exception_listener.render_error_documentwas removed. - Moved
hide_edit_image&disable_tree_previewconfigs frompimcoretopimcore_adminsection. - Recommended and default format for storing the valid languages in
system_settings.yamlis now an array, for example:- en
- de
pimcore:
general:
valid_languages:
- en
- de
[CoreBundle] :
- Please update CoreBundle config resource path from
@PimcoreCoreBundle/Resources/config/...to@PimcoreCoreBundle/config/..in your project configurations. - Priority of
PimcoreCoreBundlehas been changed to-10to make sure that it is loaded after default bundles.
[Environment] :
- Removed
symfony/dotenvdependency to make loading of.envfiles optional. please add the requirement to your composer.json, if you still want to use.envfiles. - Removed
PIMCORE_SKIP_DOTENV_FILEenvironment var support. You still can use environment specific file like.env.testor.env.prodfor environment specific environment variables.
[Gotenberg] :
- Introducing support for Gotenberg as PDF generation, conversion, merge etc.. tool
- [Asset] Added adapter (as alternative to LibreOffice) for preview generation of supported document type assets and set it as default adapter.
- [Web2Print] Added settings option, configuration and processor for PDF preview and generation
[Maintenance] :
- Removed
--async&--forceoption frompimcore:maintenancecommand. Please make sure to setup tomessenger:consume pimcore_maintenanceindependent
[Migrations] :
- Removed
executeMigrationsUpfromPimcore\Composer. - Pimcore does not run core migrations after
composerupdate automatically anymore. Make sure that migrations are executed by running the commandbin/console doctrine:migrations:migrate --prefix=Pimcore\\Bundle\\CoreBundle.
[Naming] :
- Renamed master, blacklist and whitelist to main, blocklist, allowlist
[Permissions] :
- Permission for DataObjects Classes has been structured in a more granular way to have more control. Field collections, objects bricks, classification stores and quantity value units now have their own permission.
[Sessions] :
- Removed AdminSessionHandler and AdminSessionListener. The session is now handled by Symfony.
- Removed
SessionConfiguratorInterface&SessionConfiguratorso services with tagpimcore.session.configuratorwill not register session bags anymore. - Removed parameter
pimcore.admin.session.attribute_bags - TargetingSessionBagListener - changed the signature of
__construct. AdminSessionHandlerrequires session from request stack.EcommerceFrameworkBundle\SessionEnvironmentnot loading from or storing into session in cli mode anymore.EcommerceFrameworkBundle\Tracking\TrackingManagerrequires session from request stack.
Ecommerce
[Ecommerce General] :
- Ecommerce bundle has been moved into a package
pimcore/ecommerce-bundle. If you wish to continue using the ecommerce framework, then please require the package in your composer.json and install it after enabling inconfig/bundles.php. - The constructor of the following services has been changed, please adapt your custom implementation accordingly:
IndexService\ProductList\DefaultMysql,IndexService\ProductList\DefaultFindologicIndexService\Worker\AbstractElasticSearch,IndexService\Worker\DefaultFindologic,IndexService\Worker\DefaultMysql,IndexService\Worker\OptimizedMysqlIndexService\Config\AbstractConfigand it's sub-classes.Tracking\Tracker\Analytics\AbstractAnalyticsTrackerand it's sub-classes.
- Ecommerce related Events have been moved. Please check and adapt the Events' namespaces.
- [ClassDefinition\LinkGeneratorInterface] method signature has changed, instead of
Pimcore\Model\DataObject\Concreteaobjectis used. - Elasticsearch 7 support was removed
- Config option
es_client_paramsinindex_servicewas removed - Remove deprecated methods
check()andexists()from classPimcore\Bundle\EcommerceFrameworkBundle\VoucherService\Reservation
[IndexService] :
- Please make sure to rebuild your product index to make sure changes apply accordingly (this is relevant for mysql and elasticsearch indices). As an alternative you could manually rename and remove
o_from all index columns/fields.
[Product Interfaces] :
- Changed return type-hints of
CheckoutableInterfacemethodsgetOSPrice,getOSPriceInfo,getOSAvailabilityInfo,getPriceSystemName,getAvailabilitySystemName,getPriceSystemImplementation,getAvailabilitySystemImplementationto be non-nullable.
Elements
[All] :
- Added
setParentId,setTypeandsetParentmethods toPimcore\Model\Element\ElementInterface - Removed fallback to parent id 1, when an element with a non-existing parent id gets created.
- Passing $force parameter as boolean is not valid anymore in
getById,getByPath,getElementByIdmethods. Instead, please pass it as an associative array ( eg.['force' => true]). - Changed method signature on
Pimcore\Model\Element\ElementInterface::save(), this changes the::save()method on all classes (e.g. DataObjects and Pages) implementing the interface, including those inheriting fromConcrete/AbstractObject, see #13207 - Removed deprecated
getTotalCount()method - Removed the deprecated
Pimcore\Model\Element\Service::getType(), usePimcore\Model\Element\Service::getElementType()instead. Element\Service::getValidKey()strips all control/unassigned, invalid and some more special (e.g. tabs, line-breaks, form-feed & vertical whitespace) characters.- Removed deprecated
Pimcore\Model\Element\Service::getSaveCopyName()method, please use thePimcore\Model\Element\Service::getSafeCopyName()method instead.
[DataObjects][Assets][Documents] :
- Datetime values for scheduled tasks, application logger and notifications are now displayed in the local timezone.
[DataObjects][Documents] :
- Calling
getChildren/getSiblingsonAbstractObject,DocumentandAssetnow returns unloaded listing. If the list is not traveresed immediately, then it is required to callload()explicitily. - Removed deprecated methods
getObject()andsetObject()on the classesPimcore\Model\Document\LinkandPimcore\Model\DataObject\Data\Link, please usegetElement()andsetElement()instead.
Assets
- Refactored
Pimcore\Model\Asset::getMetadatamethod to allow listing of all metadata entries filtered by a specific language. Prior this version, the language filter was only available when a specific metadata name was defined in the parameters. Added native type hints and related tests. - Removed the deprecated
marshal()/unmarshal()methods for metadata, usenormalize()/denormalize()methods instead. - Removed the deprecated
Import from ServerandImport from URLoptions. - Asset/Asset Thumbnail Update messages are now routed to different queue
- Removed VR Preview. For details please see #14111
- Image thumbnails: Removed support for using custom callbacks for thumbnail transformations.
- Removed loading assets via fixed namespace only. Custom Asset Types can be configured.
- Thumbnails: improved method signature for
$thumbnail->getPath(). You may now pass options as array$thumbnail->getPath(["deferredAllowed" => true, "frontend" => false]); - Removed deprecated property
Pimcore\Model\Asset::$types, usegetTypes()instead
[Image Optimizer] :
- Removed all the Image Optimizer services (e.g. PngCrushOptimizer, JpegoptimOptimizer etc.) as image optimization is done by the new package spatie/image-optimizer.
[WebDAV] :
-
WebDAV url has been changed from
https://YOUR-DOMAIN/admin/asset/webdavtohttps://YOUR-DOMAIN/asset/webdavAs result of this change, the following changes are required in your nginx configuration:
# Assets
....
location ~* ^(?!/admin)(.+?)....New:
# Assets
....
location ~* ^(?!/admin|/asset/webdav)(.+?)....
Data Objects
- Remove "generate type declarations" in class definitions
- Removed method_exists bc layer, please use the corresponding interfaces instead. For details please see #9571
isEqual()for advanced relational field types does not check for type equality of meta fields anymore, see #12595- Added return types to setter methods. For details see #12185
- Alias
ReverseManyToManyObjectRelationremoved, please useReverseObjectRelationinstead. - Changed default behaviour: getByXXX methods on
Concreteclass now returns objects and variants if nothing else is specified. - Changed
$objectTypesdefault value to include variants in certain scenarios. - Removed deprecated preview url in class editor.
- Removed sql filter functionality for data object grid
- Loading non-Concrete objects with the Concrete class is no longer possible
- Removed setter functions for calculated values, since they weren´t used anyway.
- Removed
o_prefix for data object properties and database columns. - Due to the removal of the
o_prefix the property namesclassTitle,hasChildren,siblings,hasSiblings,childrenSortBy,childrenSortOrder,versionCount,dirtyLanguagesanddirtyFields - Text data types now set their corresponding database columns to
nullinstead of''(empty string) when empty. - Method
Concrete::getClass()throws NotFoundException if class is not found for an object. - Change type hints of
Pimcore\Model\DataObject\QuantityValue\QuantityValueConverterInterface::convert():public function convert(QuantityValue $quantityValue, Unit $toUnit): QuantityValue;public function convert(AbstractQuantityValue $quantityValue, Unit $toUnit): AbstractQuantityValue; - Added global language switcher for localized fields
- Added new helper inheritance helper function
DataObject\Service::useInheritedValues - It's now possible to drop a video asset directly into an video editable in class
- Removed Button control for DataObjects layout definition.
[Class Definitions] :
- Class Resolver does not catch exceptions anymore.
[ClassSavedInterface] :
- Removed
method_existsbc layer. Please add the correspondingClassSavedInterfaceinterface to your custom field definitions. For more details check the 10.6.0 patch notes.
[CSV Export] :
- Changed encoding of table data-types to
json_encodefrombase64_encoded.
[CustomLayouts] :
- Removed command
pimcore:deployment:custom-layouts-rebuildas CustomLayouts are migrated to LocationAwareConfigRepository.
[Relations] :
- Add possibility to inline download asset from relations
- Add confirm dialog to empty button of relations and add possibility to disable clear relations in the class layout.
[UrlSlug] :
- Removed
indexcolumn andindexindex fromobject_url_slugstable as it was not being used anywhere. - Allow processing unpublished fallback document is now default behaviour, removed the related configuration options and usages (
allow_processing_unpublished_fallback_document,ElementListener::FORCE_ALLOW_PROCESSING_UNPUBLISHED_ELEMENTS). For details, please see #10005