Upgrade Information
Following steps are necessary during updating to newer versions.
Upgrade to 2026.1.0
PHP & Symfony Version Requirements
- Added support for
PHP8.5. - Removed support for
PHP8.3and Symfonyv6. Upgrade to PHP 8.4+ and Symfony 7 before updating to this version.
Removed Admin Classic (ExtJS) Support
PimcorePersonalizationBundleno longer implementsPimcoreBundleAdminClassicInterfaceand no longer usesBundleAdminClassicTrait. 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.jspublic/js/targeting.jspublic/js/settings/condition/abstract.jspublic/js/settings/conditions.jspublic/js/settings/action/abstract.jspublic/js/settings/actions.jspublic/js/settings/rules/panel.jspublic/js/settings/rules/item.jspublic/js/settings/targetGroups/panel.jspublic/js/settings/targetGroups/item.jspublic/js/settings/targetingtoolbar.jspublic/js/document/areatoolbar.jspublic/js/object/classes/data/targetGroup.jspublic/js/object/classes/data/targetGroupMultiselect.jspublic/js/object/tags/targetGroup.jspublic/js/object/tags/targetGroupMultiselect.js
- The following ExtJS CSS files have been removed:
public/css/icons.csspublic/css/targeting.css
- The
getCssPaths()andgetJsPaths()methods have been removed fromPimcorePersonalizationBundle.
Removed Admin Classic Controllers
- The following Admin Classic controllers have been removed entirely (they were internal):
Pimcore\Bundle\PersonalizationBundle\Controller\Admin\TargetingControllerPimcore\Bundle\PersonalizationBundle\Controller\Admin\TargetingPageControllerPimcore\Bundle\PersonalizationBundle\Controller\Admin\TargetingSnippetController
Pimcore\Bundle\PersonalizationBundle\Routing\StudioRouteLoaderhas been removed.
Removed Dependency on PimcoreAdminBundle
PimcorePersonalizationBundleno longer implementsDependentBundleInterfaceand no longer automatically registersPimcoreAdminBundleas a dependency.- The
registerDependentBundles()static method has been removed fromPimcorePersonalizationBundle.
Removed Newsletter DefaultAdapter
- The class
Pimcore\Bundle\PersonalizationBundle\Document\Newsletter\AddressSourceAdapter\DefaultAdapterhas been removed.
Removed EventListener
Pimcore\Bundle\PersonalizationBundle\EventListener\IndexSettingsListenerhas been removed.
Studio Backend / Studio UI Services
PimcoreStudioBackendBundleandPimcoreStudioUiBundleare 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
TargetGroupandTargetGroupMultiselectdynamic type field definitions for the class editor. - New
TargetGroupSelectcomponent for use in the Studio UI.
- New
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',
],
];