586

Pimcore 11 has been released – Upgrade your website or app!

By: Skynet Technologies USA LLC
8 mins
500
Pimcore 11

Pimcore 11 is available now with resolved 840 issues and pull requests. These upgrades make a powerful and highly efficient latest version of Pimcore. The new version is more scalable than the previous ones because the Pimcore community worked relentlessly to fix all open issues and pull requests. Pimcore 11 is ready to set new standards with its future-proof, ground-breaking approaches for upcoming years.

You can harness the potential of Pimcore 11 and become the industry leader in this modern, evolving digital landscape. Thus, upgrade your website with the latest Pimcore 11 and start revolutionizing data management strategy.

Read along to know the new updates in Pimcore 11 and what all technical requirements are expected for upgrading your system.

YOU MAY ALSO LIKE: PIM vs MDM

Important technical Pimcore updates and changes

Pimcore version 11 has come up with significant enhancements, optimized integration designs, and fundamental refactoring, which make it a more reliable and performance-oriented version. Let’s look at noticeable ground-breaking updates of Pimcore 11.

1. Improved code quality and structure

Pimcore 11 has separated less-used features into bundles. Thus, now you will experience increased flexibility, a leaner core, and an efficient development process.

From this version, Pimcore will apply native PHP types to all parameters and return types. Thereby Pimcore Core Framework is now strictly typed which improves the stability and code quality of the platform. The idea behind this update is to provide a more intuitive system to developers so that they can write code and prevent type errors in production.

Pimcore 11 has advanced test coverage and added static analysis checks for all packages, which increases the quality of packages. Improved package quality will help developers during development, future changes, and adaptation.

Moreover, Webpack is used to install and pack crucial front-end dependencies, for instance, JavaScript and CSS files for the Pimcore Backend User Interface (UI). This update assists in simplifying future updates and keeping all components modern.

Pimcore 11 has got activated CSP (Content Security Policy) as its default setting for its Backend Interface. This update assists in preventing some specific types of attacks, for instance, data injection attacks, cross-site scripting (XSS), etc. The latest version of Pimcore is more secure with CSP and minimizes the risk of malicious activities and data breaches.

2. Updated third-party dependencies

For Pimcore 11, the minimum requirement for PHP is version 8.1; however, it is compatible with the latest PHP 8.2 as well. Due to this update, Pimcore 11 utilizes new features of PHP language in order to improve code quality, performance, and security. Since this is a stable version of PHP; thus, these updates and security fixes will stay for at least next three years.

Almost every third-party dependency has been updated to its latest version in Pimcore 11. Therefore, the latest version can leverage the most recent features and benefits of its dependencies. And it provided robust security to Pimcore 11 for upcoming years until the dependencies will not reach their end of life.

Symfony, which is an important dependency, has been updated to its latest version 6.2, which is again beneficial in terms of features, support, and security for the next four years.

YOU MAY ALSO LIKE: Pimcore MDM

3. Refactoring to reduce technical debt

Among many updates and changes, one profound update is refactoring to keep the code base updated and maintainable all the time. This is also an important improvement for Pimcore developers because it will reduce maintenance efforts and increase the stability of the core framework.

All deprecated features, implementations, and old backward compatibility layers are removed to clean the code base.

The code bundles’ code structure is updated in Pimcore 11 in order to conform with the latest conventions and best practices.

Session handling, authentication, and Symfony runtime components are removed to reduce complexity in the Pimcore codebase.

4. Fundamental refactoring has been introduced

An abstraction layer is found for the WYSIWYG editor with ultra-modern TinyMCE as the default implementation. The abstraction layer help in integrating other WYSIWYG editors easily using extensions.

Gotenberg (a versatile PDF generator), has been implemented in Pimcore 11. It helps to generate asset document previews of office documents such as Word, Excel, and PowerPoint and then creates PDFs in the web2print module. And the compelling part of Gotenberg's implementation is its hassle-free integration into system infrastructure as a microservice. It ultimately minimizes infrastructure requirements and simplifies system complexity.

Added support for custom document and asset types are resulting in enhanced extensibility. Likewise, other updates, this will also help developers to implement their own types through extensions to fully customize Pimcore as per their unique requirements. This is a new functionality, which allows the creation of extensions that support 3D file formats.

New range data types for data objects such as number range, quantity value range, and date range have been added, which refines the data modelling capabilities of Pimcore 11.

YOU MAY ALSO LIKE: DAM VS CMS

5. Focusing on the Ecosystem

All Pimcore extensions have been updated to ensure their harmonious compatibility with Pimcore 11.

POEditor translation workflow and all Pimcore extensions’ integration enables developers to translate labels for all Pimcore extensions in their preferred language. However, it is already possible for Pimcore core; now this functionality is available for extensions as well. So, your entire system can be translated into your preferred language.

How to upgrade from Pimcore 10.x to Pimcore 11.x?

To upgrade the database, ensure to change the type from json_array to json because the type json_array is removed in doctrine/dbal3.

mysqldump -u <USERNAME> -p <PASSWORD> --no-data <DATABASENAME> | grep -i json_array

For appearance and branding, copy every relevant setting

from var/config/system.yaml to var/config/admin_system_settings/admin_system_settings.yaml to protect the settings.

To save new settings in the settings store, use the following configuration -

pimcore_admin:
  config_location:
    admin_system_settings:
      write_target:
        type: 'settings-store'
      read_target:
        type: 'settings-store'

For system settings, copy all relevant settings

from var/config/system.yaml to var/config/system_settings/system_settings.yaml.

Use the following configuration to save system settings into the settings store:

pimcore:
  config_location:
    system_settings:
      write_target:
        type: 'settings-store'
      read_target:
        type: 'settings-store'

Configuration storage settings can be done in two steps – Remove settings before the update and Re-add settings after the extracted bundles installation.

# pimcore_custom_reports:

# config_location:

# custom_reports:

# write_target:

# type: 'settings-store'

# pimcore_web_to_print:

# config_location:

# web_to_print:

# write_target:

# type: 'settings-store'

# pimcore_static_routes:

# config_location:

# staticroutes:

# write_target:

# type: 'settings-store'

For Web2Print functionality, set the flag "Enable Web2Print documents” in default documents view to true in order to ensure that PimcoreWebToPrintBundle gets installed by default.

If you are not using Web2Print functionality, then set the flag as false.

Update Pimcore to Pimcore 11 through Composer composer require -W pimcore/pimcore:^11.0 pimcore/admin-ui-classic-bundle.

After updating the settings, follow the below steps

For the admin bundle, register the admin-ui-classic-bundle in Kernel: src/Kernel.php

public function registerBundlesToCollection(BundleCollection $collection): void
{
  // pimcore bundles
  $collection->addBundle(new \Pimcore\Bundle\AdminBundle\PimcoreAdminBundle(), 60);
}

There are a few code changes.

Update config/packages/security.yaml to the latest format. Also, update references from @PimcoreCoreBundle/Resources/config/... to @PimcoreCoreBundle/config/... in config/routes.yaml. If needed, then change routing.yml to routing.yaml.

Activate extracted bundles in config/bundles.php and remove bundles as per your requirements.

You need to reactivate the configuration storage settings for the extracted bundles.

#custom_reports
pimcore_custom_reports:
  config_location:
    custom_reports:
      ...
#web_to_print
pimcore_web_to_print:
  config_location:
    web_to_print:
      ...
#static_routes
pimcore_static_routes:
  config_location:
    staticroutes:
      ...

Execute all the migrations once the Symfony container is built again.

bin/console doctrine:migrations:migrate

If not using Web2Print functionality, make sure to run the following command and queries to clean your system:

bin/console pimcore:documents:cleanup printpage printcontainer


DELETE FROM `users_permission_definitions` WHERE `key` = 'web2print_settings';

UPDATE `users` SET `permissions`=REGEXP_REPLACE(`permissions`, '(?:^|,)web2print_settings(?:$|,)', '') WHERE `permissions` REGEXP '(?:^|,)web2print_settings(?:$|,)';

Similarly, if not using Newsletter functionality, run the following command to clean up your system:

bin/console pimcore:documents:cleanup newsletter

Remove orphan custom settings since facedetect support is removed in Pimcore 11.

bin/console pimcore:assets:remove-custom-setting faceCoordinates
bin/console pimcore:assets:remove-custom-setting disableFocalPointDetection
bin/console pimcore:assets:remove-custom-setting disableImageFeatureAutoDetection

Rebuild the classes, objectBricks, fieldCollections, and customLayouts:

bin/console doctrine:migration:exec 'Pimcore\Bundle\CoreBundle\Migrations\Version20230412105530'

Remove var/config/system.yaml after migrating all settings.

And finally, update Symfony Messengar Worker Configuration.

Wrapping up

Pimcore has always surprised its users with exceptional data management and future-proof approaches. And Pimcore 11 is also all set to amaze you with its updated features and functionalities that are based on the latest industry standards and best practices. Thus, upgrade your app or website to Pimcore 11 for a seamless data management experience.

As a recognized silver partner of Pimcore, we provide an extensive array of Pimcore development services to cater the diverse client needs.

Our services encompass PIM, MDM, DAM, CMS, design, multi-channel ecommerce, integration, maintenance, and support. We serve a wide range of clients, including SMEs, large enterprises, international organizations, and web development agencies. To learn more, you can fill out the following form or email us at [email protected] . We look forward to assisting you!