Skip to main content
Version: 2026.1

Upgrade Information

Following steps are necessary during updating to newer versions.

Upgrade to 2026.1.0

PHP & Symfony Version Requirements

  • Added support for PHP 8.5.
  • Removed support for PHP 8.3 and Symfony v6. Upgrade to PHP 8.4+ and Symfony 7 before updating to this version.

Removed Admin Classic (ExtJS) Support

  • PimcorePersonalizationBundle no longer implements PimcoreBundleAdminClassicInterface and no longer uses BundleAdminClassicTrait. All ExtJS-based Admin Classic UI assets have been removed.
  • The following ExtJS JavaScript files have been removed and are no longer served:
    • public/js/startup.js
    • public/js/targeting.js
    • public/js/settings/condition/abstract.js
    • public/js/settings/conditions.js
    • public/js/settings/action/abstract.js
    • public/js/settings/actions.js
    • public/js/settings/rules/panel.js
    • public/js/settings/rules/item.js
    • public/js/settings/targetGroups/panel.js
    • public/js/settings/targetGroups/item.js
    • public/js/settings/targetingtoolbar.js
    • public/js/document/areatoolbar.js
    • public/js/object/classes/data/targetGroup.js
    • public/js/object/classes/data/targetGroupMultiselect.js
    • public/js/object/tags/targetGroup.js
    • public/js/object/tags/targetGroupMultiselect.js
  • The following ExtJS CSS files have been removed:
    • public/css/icons.css
    • public/css/targeting.css
  • The getCssPaths() and getJsPaths() methods have been removed from PimcorePersonalizationBundle.

Removed Admin Classic Controllers

  • The following Admin Classic controllers have been removed entirely (they were internal):
    • Pimcore\Bundle\PersonalizationBundle\Controller\Admin\TargetingController
    • Pimcore\Bundle\PersonalizationBundle\Controller\Admin\TargetingPageController
    • Pimcore\Bundle\PersonalizationBundle\Controller\Admin\TargetingSnippetController
  • Pimcore\Bundle\PersonalizationBundle\Routing\StudioRouteLoader has been removed.

Removed Dependency on PimcoreAdminBundle

  • PimcorePersonalizationBundle no longer implements DependentBundleInterface and no longer automatically registers PimcoreAdminBundle as a dependency.
  • The registerDependentBundles() static method has been removed from PimcorePersonalizationBundle.

Removed Newsletter DefaultAdapter

  • The class Pimcore\Bundle\PersonalizationBundle\Document\Newsletter\AddressSourceAdapter\DefaultAdapter has been removed.

Removed EventListener

  • Pimcore\Bundle\PersonalizationBundle\EventListener\IndexSettingsListener has been removed.

Studio Backend / Studio UI Services

  • PimcoreStudioBackendBundle and PimcoreStudioUiBundle are now required dependencies. The conditional loading of their service configurations has been removed — the studio backend and studio UI configurations are now always loaded unconditionally.

Studio Frontend

  • Added Pimcore Studio UI support for the Personalization module including:
    • New TargetGroup and TargetGroupMultiselect dynamic type field definitions for the class editor.
    • New TargetGroupSelect component for use in the Studio UI.

Upgrade to 2.0.0

The library geoip2/geoip2 was updated from version 2.x to 3.x.

The data stored under the PROVIDER_KEY 'geoip' has changed to a new structure.

Old data structure:

[
'city' => [
'confidence' => 76,
'geoname_id' => 9876,
],
'continent' => [
'code' => 'NA',
'geoname_id' => 42,
],
'country' => [
'confidence' => 99,
'geoname_id' => 1,
'iso_code' => 'US',
],
'location' => [
'average_income' => 24626,
'accuracy_radius' => 1500,
'latitude' => 44.98,
'longitude' => 93.2636,
'metro_code' => 765,
'population_density' => 1341,
'postal_code' => '55401',
'postal_confidence' => 33,
'time_zone' => 'America/Chicago',
],
'maxmind' => [
'queries_remaining' => 22,
],
'registered_country' => [
'geoname_id' => 2,
'iso_code' => 'CA',
],
'represented_country' => [
'geoname_id' => 3,
'iso_code' => 'GB',
],
'subdivisions' => [
[
'confidence' => 88,
'geoname_id' => 574635,
'iso_code' => 'MN',
],
],
'traits' => [
'autonomous_system_number' => 1234,
'autonomous_system_organization' => 'AS Organization',
'domain' => 'example.com',
'ip_address' => '1.2.3.4',
'is_anonymous' => true,
'is_anonymous_vpn' => true,
'is_hosting_provider' => true,
'is_public_proxy' => true,
'is_residential_proxy' => true,
'is_satellite_provider' => true,
'is_tor_exit_node' => true,
'isp' => 'Comcast',
'mobile_country_code' => '310',
'mobile_network_code' => '004',
'organization' => 'Blorg',
'static_ip_score' => 1.3,
'user_count' => 2,
'user_type' => 'college',
],
];

New data structure:

[
'city' => [
'confidence' => 76,
'geoname_id' => 9876,
],
'continent' => [
'code' => 'NA',
'geoname_id' => 42,
],
'country' => [
'confidence' => 99,
'geoname_id' => 1,
'iso_code' => 'US',
],
'location' => [
'average_income' => 24626,
'accuracy_radius' => 1500,
'latitude' => 44.98,
'longitude' => 93.2636,
'metro_code' => 765,
'population_density' => 1341,
'time_zone' => 'America/Chicago',
],
'maxmind' => [
'queries_remaining' => 22,
],
'postal' => [
'code' => '55401',
'confidence' => 33,
],
'registered_country' => [
'geoname_id' => 2,
'iso_code' => 'CA',
],
'represented_country' => [
'geoname_id' => 3,
'iso_code' => 'GB',
'type' => 'military',
],
'subdivisions' => [
[
'confidence' => 88,
'geoname_id' => 574635,
'iso_code' => 'MN',
],
],
'traits' => [
'autonomous_system_number' => 1234,
'autonomous_system_organization' => 'AS Organization',
'connection_type' => 'Cable/DSL',
'domain' => 'example.com',
'ip_address' => '1.2.3.4',
'is_anonymous' => true,
'is_anonymous_vpn' => true,
'is_anycast' => true,
'is_hosting_provider' => true,
'is_legitimate_proxy' => true,
'is_public_proxy' => true,
'is_residential_proxy' => true,
'is_tor_exit_node' => true,
'isp' => 'Comcast',
'mobile_country_code' => '310',
'mobile_network_code' => '004',
'network' => '1.2.3.0/24',
'organization' => 'Blorg',
'static_ip_score' => 1.3,
'user_count' => 2,
'user_type' => 'college',
],
];