eZ Platform v3.0 deprecations and backwards compatibility breaks¶
This page lists backwards compatibility breaks and deprecations introduced in eZ Platform v3.0.
Upgrade to v3
For a guide on moving your project to v3, see eZ Platform v3.0 project update instructions.
Symfony 5¶
v3.0 now uses Symfony 5 instead of Symfony 3. Refer to Symfony changelog for 4.0 and for 5.0 as well as Symfony upgrade guides for 4.0 and for 5.0 to learn about all changes it entails.
See v3.0 project update for the steps you need to take to update your project to Symfony 5. See also full requirements for installing eZ Platform.
Template configuration¶
Following the upgrade to Symfony 5, the templating component integration is now deprecated. As a result, the way to indicate a template path has changed.
Example 1:
- Now:
"@@EzPlatformUser/user_settings/list.html.twig" - Formerly:
"EzPlatformUserBundle:user_settings:list.html.twig"
Example 2:
- Now:
{% extends "@EzPublishCore/content_fields.html.twig" %} - Formerly:
{% extends "EzPublishCoreBundle::content_fields.html.twig" %}
Clustering configuration¶
Following the upgrade to Symfony 5, the DFS IO handler must be configured in a different way.
For more information, see the Doctrine connection configuration example in the Clustering article.
Field Types¶
The following tags used to register Field Type features in the service container have been renamed:
| Former name | New name |
|---|---|
ezpublish.fieldType |
ezplatform.field_type |
ezpublish.fieldType.indexable |
ezplatform.field_type.indexable |
ezpublish.storageEngine.legacy.converter |
ezplatform.field_type.legacy_storage.converter |
ezpublish.fieldType.parameterProvider |
ezplatform.field_type.parameter_provider |
ezpublish_rest.field_type_processor |
ibexa.rest.field_type.processor |
ez.fieldFormMapper.value |
ezplatform.field_type.form_mapper.value |
ez.fieldFormMapper.definition |
ezplatform.field_type.form_mapper.definition |
ezpublish.fieldType.externalStorageHandler |
ezplatform.field_type.external_storage_handler |
ezpublish.fieldType.externalStorageHandler.gateway |
ezplatform.field_type.external_storage_handler.gateway |
Deprecated method eZ\Publish\SPI\FieldType\FieldType::getName is now supported with a new signature similar to eZ\Publish\SPI\FieldType\Nameable::getFieldName(), which has been removed.
See eZ Platform v3.0 project update for further information.
The deprecated eZ\Publish\Core\FieldType\RichText namespace has been removed, as it was moved to a separate bundle in v2.4.
The following classes and namespaces have been deprecated and dropped:
eZ\Publish\SPI\FieldType\EventListenereZ\Publish\SPI\FieldType\EventeZ\Publish\SPI\FieldType\Events\**
Deprecated ezprice and ezpage Field Types have been removed.
Configuration through ezplatform¶
In YAML configuration, ezplatform is now used instead of ezpublish as the main configuration key.
Assetic support¶
Assetic support has been dropped.
Installers¶
Custom Installers¶
The following Symfony Service definitions that provide extension point to create custom installers have been removed:
ezplatform.installer.clean_installerezplatform.installer.db_based_installer
Enterprise Edition installer¶
The ezstudio.installer.studio_installer service has been renamed to the FQCN-named
service EzSystems\EzPlatformEnterpriseEditionInstallerBundle\Installer\Installer.
Deprecated ezplatform.ee.installer.class service container parameter has been removed.
See eZ Platform v3.0 project update instructions for upgrade details.
ezplatform-admin-ui¶
Functions renamed¶
| Former name | New name |
|---|---|
ez_is_field_empty |
ez_field_is_empty |
ezplatform_admin_ui_component_group |
ez_render_component_group |
ez_platform_tabs |
ez_render_tab_group |
ez_render_fielddefinition_edit |
ez_render_field_definition_edit |
ez_path_string_to_locations |
ez_path_to_locations |
ez_image_asset_content_field_identifier |
ez_content_field_identifier_image_asset |
encode_field |
ez_field_encode |
ez_http_tag_location |
ez_http_cache_tag_location |
ez_first_filled_image_field_identifier |
ez_content_field_identifier_first_filled_image |
ez_render_fielddefinition_settings |
ez_render_field_definition_settings |
encode_block_value |
ez_block_value_encode |
ezplatform_page_builder_cross_origin_helper |
ez_page_builder_cross_origin_helper |
Twig helper renamed¶
Selected Twig helpers names have been changed.
Additionally, the ez_trans_prop Twig function has been removed.
Global variables renamed¶
| Former name | New name |
|---|---|
admin_ui_config |
ez_admin_ui_config |
ezpublish |
ezplatform |
Filters renamed¶
| Former name | New name |
|---|---|
richtext_to_html5 |
ez_richtext_to_html5 |
richtext_to_html5_edit |
ez_richtext_to_html5_edit |
JavaScript¶
Event names changed¶
Selected event names have been changed.
| Former name | New name |
|---|---|
invalidFileSize |
ez-invalid-file-size |
addressNotFound |
ez-address-not-found |
cancelErrors |
ez-cancel-errors |
ezsettings.default.content_type.about |
ezsettings.admin_group.content_type.about |
ezsettings.default.content_type.article |
ezsettings.admin_group.content_type.article |
ezsettings.default.content_type.blog |
ezsettings.admin_group.content_type.blog |
ezsettings.default.content_type.blog_post |
ezsettings.admin_group.content_type.blog_post |
ezsettings.default.content_type.folder |
ezsettings.admin_group.content_type.folder |
ezsettings.default.content_type.form |
ezsettings.admin_group.content_type.form |
ezsettings.default.content_type.place |
ezsettings.admin_group.content_type.place |
ezsettings.default.content_type.product |
ezsettings.admin_group.content_type.product |
ezsettings.default.content_type.field |
ezsettings.admin_group.content_type.field |
ezsettings.default.content_type.user |
ezsettings.admin_group.content_type.user |
ezsettings.default.content_type.user_group |
ezsettings.admin_group.content_type.user_group |
ezsettings.default.content_type.file |
ezsettings.admin_group.content_type.file |
ezsettings.default.content_type.gallery |
ezsettings.admin_group.content_type.gallery |
ezsettings.default.content_type.image |
ezsettings.admin_group.content_type.image |
ezsettings.default.content_type.video |
ezsettings.admin_group.content_type.video |
ezsettings.default.content_type.landing_page |
ezsettings.admin_group.content_type.landing_page |
ezsettings.default.content_type.default-config |
ezsettings.admin_group.content_type.default-config |
ezsettings.default.pagination.search_limit |
ezsettings.admin_group.pagination.search_limit |
ezsettings.default.pagination.trash_limit |
ezsettings.admin_group.pagination.trash_limit |
ezsettings.default.pagination.section_limit |
ezsettings.admin_group.pagination.section_limit |
ezsettings.default.pagination.language_limit |
ezsettings.admin_group.pagination.language_limit |
ezsettings.default.pagination.role_limit |
ezsettings.admin_group.pagination.role_limit |
ezsettings.default.pagination.content_type_group_limit |
ezsettings.admin_group.pagination.content_type_group_limit |
ezsettings.default.pagination.content_type_limit |
ezsettings.admin_group.pagination.content_type_limit |
ezsettings.default.pagination.role_assignment_limit |
ezsettings.admin_group.pagination.role_assignment_limit |
ezsettings.default.pagination.policy_limit |
ezsettings.admin_group.pagination.policy_limit |
ezsettings.default.pagination.version_draft_limit |
ezsettings.admin_group.pagination.version_draft_limit |
ezsettings.default.pagination.content_system_url_limit |
ezsettings.admin_group.pagination.content_system_url_limit |
ezsettings.default.pagination.content_custom_url_limit |
ezsettings.admin_group.pagination.content_custom_url_limit |
ezsettings.default.pagination.content_role_limit |
ezsettings.admin_group.pagination.content_role_limit |
ezsettings.default.pagination.content_policy_limit |
ezsettings.admin_group.pagination.content_policy_limit |
ezsettings.default.pagination.bookmark_limit |
ezsettings.admin_group.pagination.bookmark_limit |
ezsettings.default.pagination.notification_limit |
ezsettings.admin_group.pagination.notification_limit |
ezsettings.default.pagination.content_draft_limit |
ezsettings.admin_group.pagination.content_draft_limit |
ezsettings.default.security.token_interval_spec |
ezsettings.admin_group.security.token_interval_spec |
ezsettings.default.user_content_type_identifier |
ezsettings.admin_group.user_content_type_identifier |
ezsettings.default.user_group_content_type_identifier |
ezsettings.admin_group.user_group_content_type_identifier |
ezsettings.default.subtree_operations.copy_subtree.limit |
ezsettings.admin_group.subtree_operations.copy_subtree.limit |
ezsettings.default.notifications.error.timeout |
ezsettings.admin_group.notifications.error.timeout |
ezsettings.default.notifications.warning.timeout |
ezsettings.admin_group.notifications.warning.timeout |
ezsettings.default.notifications.success.timeout |
ezsettings.admin_group.notifications.success.timeout |
ezsettings.default.notifications.info.timeout |
ezsettings.admin_group.notifications.info.timeout |
ezsettings.default.content_tree_module.load_more_limit |
ezsettings.admin_group.content_tree_module.load_more_limit |
ezsettings.default.content_tree_module.children_load_max_limit |
ezsettings.admin_group.content_tree_module.children_load_max_limit |
ezsettings.default.content_tree_module.tree_max_depth |
ezsettings.admin_group.content_tree_module.tree_max_depth |
ezsettings.default.content_tree_module.allowed_content_types |
ezsettings.admin_group.content_tree_module.allowed_content_types |
ezsettings.default.content_tree_module.ignored_content_types |
ezsettings.admin_group.content_tree_module.ignored_content_types |
ezsettings.default.content_tree_module.tree_root_location_id |
ezsettings.admin_group.content_tree_module.tree_root_location_id |
Template organization¶
Templates renamed¶
The following templates used in the Back Office have been renamed:
| Former name | New name |
|---|---|
| admin/systeminfo/composer.html.twig | admin/system_info/composer.html.twig |
| admin/systeminfo/database.html.twig | admin/system_info/database.html.twig |
| admin/systeminfo/hardware.html.twig | admin/system_info/hardware.html.twig |
| admin/systeminfo/info.html.twig | admin/system_info/info.html.twig |
| admin/systeminfo/php.html.twig | admin/system_info/php.html.twig |
| admin/systeminfo/symfony_kernel.html.twig | admin/system_info/symfony_kernel.html.twig |
| content/content_edit/parts/javascripts.html.twig | content/content_edit/part/javascripts.html.twig |
| content/content_edit/parts/stylesheets.html.twig | content/content_edit/part/stylesheets.html.twig |
| content/locationview.html.twig | content/location_view.html.twig |
| content/widgets/content_create.html.twig | content/widget/content_create.html.twig |
| content/widgets/content_edit.html.twig | content/widget/content_edit.html.twig |
| content/widgets/user_edit.html.twig | content/widget/user_edit.html.twig |
| errors/403.html.twig | error/403.html.twig |
| errors/404.html.twig | error/404.html.twig |
| errors/error.html.twig | error/error.html.twig |
| fieldtypes/edit/binary_base.html.twig | field_type/edit/binary_base.html.twig |
| fieldtypes/edit/binary_base_fields.html.twig | field_type/edit/binary_base_fields.html.twig |
| fieldtypes/edit/ezauthor.html.twig | field_type/edit/ezauthor.html.twig |
| fieldtypes/edit/ezbinaryfile.html.twig | field_type/edit/ezbinaryfile.html.twig |
| fieldtypes/edit/ezboolean.html.twig | field_type/edit/ezboolean.html.twig |
| fieldtypes/edit/ezdate.html.twig | field_type/edit/ezdate.html.twig |
| fieldtypes/edit/ezdatetime.html.twig | field_type/edit/ezdatetime.html.twig |
| fieldtypes/edit/ezgmaplocation.html.twig | field_type/edit/ezgmaplocation.html.twig |
| fieldtypes/edit/ezimage.html.twig | field_type/edit/ezimage.html.twig |
| fieldtypes/edit/ezimageasset.html.twig | field_type/edit/ezimageasset.html.twig |
| fieldtypes/edit/ezkeyword.html.twig | field_type/edit/ezkeyword.html.twig |
| fieldtypes/edit/ezmedia.html.twig | field_type/edit/ezmedia.html.twig |
| fieldtypes/edit/ezobjectrelation.html.twig | field_type/edit/ezobjectrelation.html.twig |
| fieldtypes/edit/ezobjectrelationlist.html.twig | field_type/edit/ezobjectrelationlist.html.twig |
| fieldtypes/edit/ezrichtext.html.twig | field_type/edit/ezrichtext.html.twig |
| fieldtypes/edit/ezselection.html.twig | field_type/edit/ezselection.html.twig |
| fieldtypes/edit/eztime.html.twig | field_type/edit/eztime.html.twig |
| fieldtypes/edit/ezuser.html.twig | field_type/edit/ezuser.html.twig |
| fieldtypes/edit/relation_base.html.twig | field_type/edit/relation_base.html.twig |
| fieldtypes/preview/content_fields.html.twig | field_type/preview/content_fields.html.twig |
| fieldtypes/preview/ezimageasset.html.twig | field_type/preview/ezimageasset.html.twig |
| fieldtypes/preview/ezobjectrelationlist_row.html.twig | field_type/preview/ezobjectrelationlist_row.html.twig |
| Limitation/null_limitation_values.html.twig | limitation/null_limitation_values.html.twig |
| Limitation/udw_limitation_value.html.twig | limitation/udw_limitation_value.html.twig |
| Limitation/udw_limitation_value_list_item.html.twig | limitation/udw_limitation_value_list_item.html.twig |
| parts/breadcrumbs.html.twig | part/breadcrumbs.html.twig |
| parts/form/assign_section_widget.html.twig | part/form/assign_section_widget.html.twig |
| parts/form/flat_widgets.html.twig | part/form/flat_widgets.html.twig |
| parts/location_bookmark.html.twig | part/location_bookmark.html.twig |
| parts/menu/sidebar_base.html.twig | part/menu/sidebar_base.html.twig |
| parts/menu/sidebar_right.html.twig | part/menu/sidebar_right.html.twig |
| parts/menu/sidebar_left.html.twig | part/menu/sidebar_left.html.twig |
| parts/menu/top_menu.html.twig | part/menu/top_menu.html.twig |
| parts/menu/top_menu_2nd_level.html.twig | part/menu/top_menu_2nd_level.html.twig |
| parts/menu/top_menu_base.html.twig | part/menu/top_menu_base.html.twig |
| parts/menu/user_menu.html.twig | part/menu/user_menu.html.twig |
| parts/navigation.html.twig | part/navigation.html.twig |
| parts/notification.html.twig | part/notification.html.twig |
| parts/page_title.html.twig | part/page_title.html.twig |
| parts/path.html.twig | part/path.html.twig |
| parts/tab/content_type.html.twig | part/tab/content_type.html.twig |
| parts/tab/default.html.twig | part/tab/default.html.twig |
| parts/tab/locationview.html.twig | part/tab/location_view.html.twig |
| parts/tab/system_info.html.twig | part/tab/system_info.html.twig |
| parts/table_header.html.twig | part/table_header.html.twig |
| parts/tag.html.twig | part/tag.html.twig |
| Security/base.html.twig | security/base.html.twig |
| Security/forgot_user_password/index.html.twig | security/forgot_user_password/index.html.twig |
| Security/forgot_user_password/success.html.twig | security/forgot_user_password/success.html.twig |
| Security/forgot_user_password/with_login.html.twig | security/forgot_user_password/with_login.html.twig |
| Security/form_fields.html.twig | security/form_fields.html.twig |
| Security/login.html.twig | security/login.html.twig |
| Security/mail/forgot_user_password.html.twig | security/mail/forgot_user_password.html.twig |
| Security/reset_user_password/index.html.twig | security/reset_user_password/index.html.twig |
| Security/reset_user_password/invalid_link.html.twig | security/reset_user_password/invalid_link.html.twig |
| Security/reset_user_password/success.html.twig | security/reset_user_password/success.html.twig |
| user-profile/change_user_password.html.twig | user_profile/change_user_password.html.twig |
| user-profile/form_fields.html.twig | user_profile/form_fields.html.twig |
Templates relocated¶
The @ezdesign/account/error/credentials_expired.html.twig has been relocated from src/bundle/Resources/views/Security/error to src/bundle/Resources/views/themes/admin/account/error.
Universal Discovery Widget¶
The UDW configuration has been changed. For the full list of UDW configuration keys and their descriptions, see UDW configuration.
Online Editor¶
All Online Editor front-end code and assets (such as JS, CSS, fonts, etc.)
have been moved from ezplatform-admin-ui to ezplatform-richtext.
Adding new tabs in the Back Office¶
The way of adding custom tab groups in the Back Office has changed.
You now need to make use of the TabsComponent.
Content Type forms¶
Content Type editing, including Action Dispatchers, Form Processors, Types and Data classes related to Content Types/Limitations,
has been moved to ezplatform-admin-ui from repository-forms.
Code cleanup in Admin UI¶
The following deprecated items have been removed:
| Removed code | Belongs to | Use instead |
|---|---|---|
canEdit |
EzSystems\EzPlatformAdminUiBundle\Controller\LanguageController::viewAction |
can_administrate |
canAssign |
EzSystems\EzPlatformAdminUiBundle\Controller\LanguageController::viewAction |
can_administrate |
baseLanguage |
EzSystems\EzPlatformAdminUi\EventListener\ContentTranslateViewFilterParametersListener::onFilterViewParameters |
base_language |
contentType |
EzSystems\EzPlatformAdminUi\EventListener\ContentTranslateViewFilterParametersListener::onFilterViewParameters |
content_type |
isPublished |
EzSystems\EzPlatformAdminUi\EventListener\ContentTranslateViewFilterParametersListener::onFilterViewParameters |
ContentInfo::isPublished |
fieldDefinitionsByGroup |
EzSystems\EzPlatformAdminUi\Tab\LocationView\ContentTab |
field_definitions_by_group |
full |
window.eZ.adminUiConfig.dateFormat |
fullDateTime |
short |
window.eZ.adminUiConfig.dateFormat |
shortDateTime |
limit |
EzSystems\EzPlatformAdminUi\UI\Module\Subitems\ContentViewParameterSupplier |
- |
contentTypeNames |
window.eZ.adminUiConfig |
contentTypes |
Following the upgrade to Symfony 5, the following event classes have been deprecated:
| Deprecated | Use instead |
|---|---|
Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent |
Symfony\Component\HttpKernel\Event\ExceptionEvent |
Symfony\Component\HttpKernel\Event\GetResponseEvent |
Symfony\Component\HttpKernel\Event\RequestEvent |
Also, as of Symfony 5, the transchoice Twig filter has been replaced with trans.
New translation strings are required.
SubtreeQuery¶
Deprecated SubtreeQuery class has been removed. In v3.0, it was replaced by EzSystems\EzPlatformAdminUi\QueryType\SubtreeQueryType.
Permission Choice Loaders¶
The following choiceLoaders classes deprecated in v2.5 have been removed:
EzSystems\EzPlatformAdminUi\Form\Type\ChoiceList\Loader\PermissionAwareContentTypeChoiceLoaderEzSystems\EzPlatformAdminUi\Form\Type\ChoiceList\Loader\PermissionAwareLanguageChoiceLoader
Instead, use the following classes:
EzSystems\EzPlatformAdminUi\Form\Type\ChoiceList\Loader\ContentCreateContentTypeChoiceLoaderEzSystems\EzPlatformAdminUi\Form\Type\ChoiceList\Loader\ContentCreateLanguageChoiceLoader
Universal Discovery Widget¶
The deprecated universal_discovery_widget_module.default_location_id setting has been replaced with universal_discovery_widget_module.configuration.default.starting_location_id.
ezplatform-admin-ui-modules¶
This package is deprecated. Its code has been moved to ezplatform-admin-ui.
ezplatform-content-forms¶
This new package contains forms for content creation moved from repository-forms.
ezplatform-design-engine¶
Code cleanup in Design Engine¶
- The deprecated
Twig\Loader\ExistsLoaderInterfacehas been removed. - The deprecated
Twig_Profiler_ProfileTwig class has been replaced withTwig\Profiler\Profile. - The deprecated
Twig_EnvironmentTwig class has been replaced withTwig\Environment
ezplatform-form-builder¶
JavaScript¶
Event names changed¶
The following event names have been changed:
| Former name | New name |
|---|---|
openUdw |
ez-open-udw |
updateFieldName |
ez-update-field-name |
fbFormBuilderLoaded |
ez-form-builder-loaded |
fbFormBuilderUnloaded |
ez-form-builder-unloaded |
ezplatform-http-cache¶
FOS Cache Bundle v2¶
HTTP cache bundle now uses FOS Cache Bundle v2.
This entails that:
EzSystems\PlatformHttpCacheBundle\Proxy\TagAwareStorehas been removed.EzSystems\PlatformHttpCacheBundle\Handler\TagHandlerhas been changed so that the tag is now provided as an option inheader_formatter.tagResponse()fromtagHandlerhas been replaced bytagSymfonyResponse().- Deprecated
EzSystems\PlatformHttpCacheBundle\Handler\TagHandlerInterfacehas been removed. EzSystems\PlatformHttpCacheBundle\PurgeClient\PurgeClientInterfacenow only accepts an array as argument in thepurge()method, instead of an int.- The
X-User-Hashheader for recognizing user context has been changed toX-User-Context-Hash. - The
keyheader for purging tags has been changed toxkey-softpurge. - The
PURGEmethod has been changed toPURGEKEY. - The
ezplatform.http_cache.tags.headerparameter has been removed. Configuration now relies on FOS Cache configuration and its default values.
Code cleanup in HTTP Cache¶
Instances of the following deprecated event classes have been replaced:
| Deprecated class | Replaced with |
|---|---|
Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent |
Symfony\Component\HttpKernel\Event\ExceptionEvent |
Symfony\Component\HttpKernel\Event\GetResponseForControllerResultEvent |
Symfony\Component\HttpKernel\Event\ViewEvent |
Symfony\Component\HttpKernel\Event\FilterResponseEvent |
Symfony\Component\HttpKernel\Event\ResponseEvent |
Symfony\Component\HttpKernel\Event\GetResponseEvent |
Symfony\Component\HttpKernel\Event\RequestEvent |
Twig_Extension |
Twig\Extension\AbstractExtension |
Twig_SimpleFunction |
Twig\TwigFunction |
Selected deprecated Role Service and permission-related methods have been removed. For details, see code cleanup in kernel.
ezplatform-kernel replacing ezpublish-kernel¶
ezplatform-kernel package¶
eZ Platform now makes use of ezplatform-kernel instead of ezpublish-kernel.
This change is introduced without BC breaks.
API methods¶
Following API methods have been removed:
\eZ\Publish\API\Repository\ContentService::removeTranslation\eZ\Publish\API\Repository\UserService::loadAnonymousUser\eZ\Publish\API\Repository\Repository::getCurrentUser\eZ\Publish\API\Repository\Repository::getCurrentUserReference\eZ\Publish\API\Repository\Repository::setCurrentUser\eZ\Publish\API\Repository\Repository::hasAccess\eZ\Publish\API\Repository\Repository::canUser\eZ\Publish\API\Repository\RoleService::updateRole\eZ\Publish\API\Repository\RoleService::addPolicy\eZ\Publish\API\Repository\RoleService::deletePolicy\eZ\Publish\API\Repository\RoleService::updatePolicy\eZ\Publish\API\Repository\RoleService::loadPoliciesByUserId\eZ\Publish\API\Repository\RoleService::unassignRoleFromUser\eZ\Publish\API\Repository\RoleService::unassignRoleFromUserGroup\eZ\Publish\API\Repository\Values\Content\Query\Criterion::createFromQueryBuilder\eZ\Publish\API\Repository\Values\Content\Query\Criterion\Ancestor::createFromQueryBuilder\eZ\Publish\API\Repository\Values\Content\Query\Criterion\ContentId::createFromQueryBuilder\eZ\Publish\API\Repository\Values\Content\Query\Criterion\ContentTypeGroupId::createFromQueryBuilder\eZ\Publish\API\Repository\Values\Content\Query\Criterion\ContentTypeId::createFromQueryBuilder\eZ\Publish\API\Repository\Values\Content\Query\Criterion\ContentTypeIdentifier::createFromQueryBuilder\eZ\Publish\API\Repository\Values\Content\Query\Criterion\FieldRelation::createFromQueryBuilder\eZ\Publish\API\Repository\Values\Content\Query\Criterion\FullText::createFromQueryBuilder\eZ\Publish\API\Repository\Values\Content\Query\Criterion\LanguageCode::createFromQueryBuilder\eZ\Publish\API\Repository\Values\Content\Query\Criterion\LocationId::createFromQueryBuilder\eZ\Publish\API\Repository\Values\Content\Query\Criterion\LocationRemoteId::createFromQueryBuilder\eZ\Publish\API\Repository\Values\Content\Query\Criterion\MatchAll::createFromQueryBuilder\eZ\Publish\API\Repository\Values\Content\Query\Criterion\MatchNone::createFromQueryBuilder\eZ\Publish\API\Repository\Values\Content\Query\Criterion\MoreLikeThis::createFromQueryBuilder\eZ\Publish\API\Repository\Values\Content\Query\Criterion\ObjectStateId::createFromQueryBuilder\eZ\Publish\API\Repository\Values\Content\Query\Criterion\ParentLocationId::createFromQueryBuilder\eZ\Publish\API\Repository\Values\Content\Query\Criterion\RemoteId::createFromQueryBuilder\eZ\Publish\API\Repository\Values\Content\Query\Criterion\SectionId::createFromQueryBuilder\eZ\Publish\API\Repository\Values\Content\Query\Criterion\Subtree::createFromQueryBuilder\eZ\Publish\API\Repository\Values\Content\Query\Criterion\Visibility::createFromQueryBuilder
SPI methods¶
Following SPI methods have been removed:
\eZ\Publish\SPI\Persistence\Content\Handler::removeTranslationFromContent
Dynamic settings¶
Using dynamic settings (through $setting$) and getting settings from the ConfigResolver in a class constructor
or method call has been dropped.
You should use the ConfigResolver instead.
Do not store the values globally. Every time the value is needed call ConfigResolverInterface::getParameter.
Controllers¶
AbstractController¶
The eZ\Bundle\EzPublishCoreBundle\Controller now extends Symfony\Bundle\FrameworkBundle\Controller\AbstractController instead of Symfony\Bundle\FrameworkBundle\Controller\Controller which has limited access to the service container.
For details, see Service Subscribers Locators.
The Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand is deprecated, use Symfony\Component\Console\Command\Command instead.
ViewController¶
Deprecated viewLocation and embedLocation actions of the ViewController have been removed, along with related route _ezpublishLocation.
Use:
viewActioninstead ofviewLocationembedActioninstead ofembedLocation
Elastic Search¶
Experimental, deprecated and unsupported code for Elastic Search 1.4.2 has been dropped from kernel, to be replaced with a dedicated bundle for the latest Elastic version in the future.
Field Types¶
Star Rating¶
The unused ezsrrating Field Type has been removed along with the related database storage and clean installation entries.
RichText¶
The ezrichtext Field Type has been removed from ezplatform-kernel.
Use ezplatform-richtext instead.
Following this change:
- The
eZ\Publish\Core\FieldType\RichTextnamespace has been dropped. All classes are available inezplatform-richtext. - The only correct configuration (recommended as of v2.4) looks the following way:
Now (as of v3.0):
1 | |
Formerly (deprecated as of v2.4, removed as of v3.0)
1 2 | |
Tags¶
Deprecated ezpublish.query_type tag has been removed in favour of ezplatform.query_type tag.
Signal Slots¶
Signal Slots have been replaced by Symfony Events and Event Listeners.
The application triggers two Events per operation: one before and one after the relevant thing happens (see for example Bookmark events).
Legacy Storage Gateways¶
The following deprecated (since v6.11) Legacy Storage Gateways have been removed:
eZ\Publish\Core\FieldType\BinaryFile\BinaryBaseStorage\Gateway\LegacyStorageeZ\Publish\Core\FieldType\BinaryFile\BinaryFileStorage\Gateway\LegacyStorageeZ\Publish\Core\FieldType\MapLocation\MapLocationStorage\Gateway\LegacyStorageeZ\Publish\Core\FieldType\Image\ImageStorage\Gateway\LegacyStorageeZ\Publish\Core\FieldType\Keyword\KeywordStorage\Gateway\LegacyStorageeZ\Publish\Core\FieldType\Media\MediaStorage\Gateway\LegacyStorageeZ\Publish\Core\FieldType\Url\UrlStorage\Gateway\LegacyStorageeZ\Publish\Core\FieldType\User\UserStorage\Gateway\LegacyStorage
Use DoctrineStorage Gateways from the same namespace instead.
The removed classes refer to External Storage for core Field Types only.
REST server¶
Transfer of REST code from kernel to a separate package results in the following change:
- The
eZ\Publish\Core\RESTandeZ\Publish\Core\REST\Common\namespaces have been replaced byEzSystems\EzPlatformRest. - REST client has been dropped.
SiteAccess-aware Repository¶
The Repository now uses the SiteAccess-aware layer by default.
This means Repository objects will now be loaded in the translation corresponding to the SiteAccess.
To load an object with all its translations, explicitly pass eZ\Publish\API\Repository\Values\Content\Language::ALL
as the prioritized languages list.
SiteAccess matching¶
When matching SiteAccesses using custom services, the SiteAccess matcher service must be now tagged with ezplatform.siteaccess.matcher.
Search Indexers¶
Service Provider abstracts for Search Engine Indexer implementations (\eZ\Publish\Core\Search\Common\IncrementalIndexer and \eZ\Publish\Core\Search\Common\Indexer) now accept \Doctrine\DBAL\Connection $connection instead of \eZ\Publish\Core\Persistence\Database\DatabaseHandler $databaseHandler.
Inject them via @ezpublish.persistence.connection.
The methods getContentLocationIds and logWarning of \eZ\Publish\Core\Search\Common\Indexer have been dropped.
Use Location SPI Persistence Handler in place of getContentLocationIds. Use Logger directly in place of logWarning.
Database¶
The following obsolete tables have been removed from the database schema:
Removed database tables
- ezapprove_items
- ezbasket
- ezcollab_group
- ezcollab_item
- ezcollab_item_group_link
- ezcollab_item_message_link
- ezcollab_item_participant_link
- ezcollab_item_status
- ezcollab_notification_rule
- ezcollab_profile
- ezcollab_simple_message
- ezcomment
- ezcomment_notification
- ezcomment_subscriber
- ezcomment_subscription
- ezcontentbrowserecent
- ezcurrencydata
- ezdiscountrule
- ezdiscountsubrule
- ezdiscountsubrule_value
- ezenumobjectvalue
- ezenumvalue
- ezforgot_password
- ezgeneral_digest_user_settings
- ezinfocollection
- ezinfocollection_attribute
- ezisbn_group
- ezisbn_group_range
- ezisbn_registrant_range
- ezm_block
- ezm_pool
- ezmessage
- ezmodule_run
- ezmultipricedata
- eznotificationcollection
- eznotificationcollection_item
- eznotificationevent
- ezoperation_memento
- ezorder
- ezorder_item
- ezorder_nr_incr
- ezorder_status
- ezorder_status_history
- ezpaymentobject
- ezpdf_export
- ezpending_actions
- ezprest_authcode
- ezprest_authorized_clients
- ezprest_clients
- ezprest_token
- ezproductcategory
- ezproductcollection
- ezproductcollection_item
- ezproductcollection_item_opt
- ezpublishingqueueprocesses
- ezrss_export
- ezrss_export_item
- ezrss_import
- ezscheduled_script
- ezsearch_search_phrase
- ezsession
- ezsubtree_notification_rule
- eztipafriend_counter
- eztipafriend_request
- eztrigger
- ezuservisit
- ezuser_discountrule
- ezvatrule
- ezvatrule_product_category
- ezvattype
- ezview_counter
- ezwaituntildatevalue
- ezwishlist
- ezworkflow
- ezworkflow_assign
- ezworkflow_event
- ezworkflow_group
- ezworkflow_group_link
- ezworkflow_process
You can drop unused tables from your database by executing:
1 | |
- The "Setup" folder and Section have been removed from clean installation data.
- The "Design" Section has been removed from clean installation data.
- The
ezkeyword_attribute_linktable now has aversioncolumn.
Content Type Update handlers¶
The following obsolete handler has been removed:
DeferredLegacyContent Type Update handler (eZ\Publish\Core\Persistence\Legacy\Content\Type\Update\Handler\DeferredLegacy) with its optional Symfony Container Service (ezpublish.persistence.legacy.content_type.update_handler.deferred)
Subscribe to eZ Platform Symfony Events to handle deferring of updating of Content items after their Content Type update instead.
Symfony Services¶
The date_based_publisher.permission_resolver Symfony Service deprecated in v2.5 has been removed.
Instead, you can inject eZ\Publish\API\Repository\PermissionResolver and rely on auto-wiring.
Symfony MIME component¶
The deprecated Symfony\Component\HttpFoundation\File\MimeType\ExtensionGuesserInterface has been replaced with Symfony\Component\Mime\MimeTypesInterface.
Symfony Dependency Injection Container¶
The deprecated Symfony service container parameters ending with .class have been removed, services relying on them now have their classes defined explicitly.
To properly decorate a Symfony service, use the decorates attribute instead.
For the full list of the dropped parameters, see
kernel documentation.
Template parameter names¶
The SiteAccess-aware pagelayout setting is deprecated in favor of page_layout.
View parameter pagelayout set by pagelayout setting is deprecated in favor of page_layout.
Code cleanup in eZ Platform Kernel¶
Instances of the deprecated code have been replaced:
| Deprecated | Replaced with |
|---|---|
Symfony\Component\Security\Core\User\AdvancedUserInterface |
Symfony\Component\Security\Core\User\UserInterface |
Symfony\Component\HttpKernel\Event\FilterResponseEvent |
Symfony\Component\HttpKernel\Event\ResponseEvent |
Symfony\Component\HttpKernel\Event\GetResponseForControllerResultEvent |
Symfony\Component\HttpKernel\Event\ViewEvent |
Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent |
Symfony\Component\HttpKernel\Event\ExceptionEvent |
Symfony\Component\HttpKernel\Event\GetResponseEvent |
Symfony\Component\HttpKernel\Event\RequestEvent |
Symfony\Component\HttpKernel\Event\FilterControllerArgumentsEvent |
Symfony\Component\HttpKernel\Event\ControllerEvent |
Also, as of Symfony 5, the transchoice Twig filter has been replaced with trans.
New translation strings are required.
The deprecated eZ\Publish\Core\MVC\Symfony\Matcher\MatcherInterface interface has been dropped.
The following deprecated classes relying on that interface have been removed as well:
eZ\Publish\Core\MVC\Symfony\Matcher\AbstractMatcherFactoryeZ\Publish\Core\MVC\Symfony\Matcher\ContentBasedMatcherFactoryeZ\Publish\Core\MVC\Symfony\Matcher\ContentMatcherFactoryeZ\Publish\Core\MVC\Symfony\Matcher\LocationMatcherFactory
Twig classes¶
The following deprecated Twig classes have been replaced:
| Deprecated | Replaced with |
|---|---|
Twig_Extensions_Extension_Intl |
Twig\Extensions\IntlExtension |
Twig_Template |
Twig\Template |
Twig_Node |
Twig\Node\Node |
Twig intl extension¶
Twig intl extension has been dropped.
EzPublishMigration¶
The EzPublishMigration bundle has been dropped.
Password hashes¶
Insecure password hash types deprecated since v1.13 have been removed:
PASSWORD_HASH_MD5_PASSWORDPASSWORD_HASH_MD5_USERPASSWORD_HASH_MD5_SITEPASSWORD_HASH_PLAINTEXT
Login with the removed hashes will no longer work. Users can request a new, valid password using the "Forgot password" feature.
Strict types for PHP API¶
Strict types have been added to public PHP API methods.
Zeta Components (eZc) Database handler¶
The deprecated Zeta Components (eZc) Database handler has been dropped.
All classes and interfaces from eZ\Publish\Core\Persistence\Database and eZ\Publish\Core\Persistence\Doctrine namespaces have been removed.
ezpublish.connection has been removed. Use ezpublish.persistence.connection instead.
The signature of the \eZ\Publish\Core\Persistence\Legacy\URL\Query\CriterionHandler::handle contract
now accepts \Doctrine\DBAL\Query\QueryBuilder instead of \eZ\Publish\Core\Persistence\Database\SelectQuery and has the following form:
1 2 3 4 | |
ezpublish.api.search_engine.legacy.dbhandler and ezpublish.api.storage_engine.legacy.dbhandler
have been removed.
Inject \Doctrine\DBAL\Connection via ezpublish.persistence.connection instead.
Field Type External Storage Handlers¶
The Field Type External Storage Handlers $context arrays no longer have the "connection" key.
You should rely on injected Connection instead.
The $context array of \eZ\Publish\SPI\FieldType\FieldStorage methods (storeFieldData,
getFieldData, deleteFieldData, getIndexData) is deprecated and will be dropped in the next
major version.
You should rely on injected Connection instead.
ezplatform-page-builder¶
JavaScript¶
Event names changed¶
The following event names have been changed:
| Former name | New name |
|---|---|
openUdw |
ez-open-udw |
openAirtimePopup |
ez-open-airtime-popup |
postUpdateBlocksPreview |
ez-post-update-blocks-preview |
pbIframeLoaded |
ez-page-builder-iframe-loaded |
pbHideTools |
ez-page-builder-hide-tools |
Additionally, the listener for pbPreviewReloaded has been removed.
ezplatform-page-fieldtype¶
Namespace location update¶
The following namespaces have been changed:
| Namespace | Former location | New location |
|---|---|---|
FieldData |
EzSystems\RepositoryForms\Data\Content\ |
EzSystems\EzPlatformContentForms\Data\Content\ |
FieldValueFormMapperInterface |
EzSystems\RepositoryForms\FieldType\ |
EzSystems\EzPlatformContentForms\FieldType\ |
ezplatform-rest¶
Code cleanup in eZ Platform REST¶
Selected deprecated Role Service and permission-related methods have been removed. For details, see code cleanup in kernel.
Using the Criteria element in REST input query (search view) payload has been deprecated since eZ Platform v1.6 and was dropped in this release.
ezplatform-richtext¶
Code cleanup in eZ Platform RichText¶
Selected deprecated permission-related methods have been removed. For details, see code cleanup in kernel.
Input and output converters¶
Following the removal of the ezrichtext Field Type from kernel, the following deprecated converter tags have been changed:
| Formerly | Currently |
|---|---|
ezpublish.ezrichtext.converter.output.xhtml5 |
ezrichtext.converter.output.xhtml5 |
ezpublish.ezrichtext.converter.input.xhtml5 |
ezrichtext.converter.input.xhtml5 |
Online Editor¶
Configuration providers exposing the following JavaScript variables have been dropped:
eZ.adminUiConfig.alloyEditorreplaced byeZ.richText.alloyEditoreZ.adminUiConfig.richTextCustomTagsreplaced byeZ.richText.customTagseZ.adminUiConfig.richTextCustomStylesreplaced byeZ.richText.customStyles
The following Webpack Encore entries have been changed:
ezplatform-admin-ui-alloyeditor-cssreplaced byezplatform-richtext-onlineeditor-cssezplatform-admin-ui-alloyeditor-jsreplaced byezplatform-richtext-onlineeditor-js
All Online Editor front-end code and assets (such as JS, CSS, fonts, etc.)
have been moved from ezplatform-admin-ui to ezplatform-richtext.
Custom button configuration¶
Configuring custom Online Editor buttons with ezrichtext.alloy_editor.extra_buttons is deprecated.
Use ezplatform.system.<siteacces>.fieldtypes.ezrichtext.toolbars.<toolbar_identifier>.buttons instead.
View matching¶
When matching views using custom services, the services must be now tagged with ezplatform.view.matcher.
The matching must be configured in the following way:
1 2 3 4 5 6 | |
Service tags¶
The following ezrichtext service tags have been extended to be consistent with other service tags:
| Currently | Formerly |
|---|---|
ezplatform.ezrichtext.converter.output.xhtml5 |
ezrichtext.converter.output.xhtml5 |
ezplatform.ezrichtext.converter.input.xhtml5 |
ezrichtext.converter.input.xhtml5 |
ezplatform.ezrichtext.validator.input.ezxhtml5 |
ezrichtext.validator.input.ezxhtml5 |
ezplatform-solr-search-engine¶
The ezplatform:solr_create_index command has been removed.
Use ezplatform:reindex instead.
ezplatform-user¶
User settings¶
As a result of moving user settings to the ezplatform-user package,
the following deprecated code for handling the settings has been dropped:
EzSystems\EzPlatformAdminUi\UserSetting\EzSystems\EzPlatformAdminUi\Pagination\Pagerfanta\UserSettingsAdapterEzSystems\EzPlatformAdminUi\Form\Type\User\Setting\UserSettingUpdateTypeEzSystems\EzPlatformAdminUiBundle\Controller\UserProfile\UserPasswordChangeControllerEzSystems\EzPlatformAdminUiBundle\Controller\User\{UserSettingsController,UserForgotPasswordController}
Code cleanup in eZ Platform User¶
The deprecated Symfony\Bundle\FrameworkBundle\Controller\Controller has been replaced with Symfony\Bundle\FrameworkBundle\Controller\AbstractController.
flex-workflow¶
This package is deprecated. Its functionality has been moved to ezplatform-workflow.
repository-forms¶
Forms located in repository-forms have been moved to other packages.
Content Type editing, including Action Dispatchers, Form Processors, Types and Data classes related to Content Types/Limitations,
has been moved to ezplatform-admin-ui.
The following locations have been changed:
| Former location | New location |
|---|---|
EzSystems\RepositoryForms\Data\FieldDefinitionData |
EzSystems\EzPlatformAdminUi\Form\Data\FieldDefinitionData |
EzSystems\RepositoryForms\FieldType\FieldDefinitionFormMapperInterface |
EzSystems\EzPlatformAdminUi\FieldType\FieldDefinitionFormMapperInterface |
EzSystems\RepositoryForms\Limitation\LimitationFormMapperInterface |
EzSystems\EzPlatformAdminUi\Limitation\LimitationFormMapperInterface |
EzSystems\RepositoryForms\Limitation\LimitationValueMapperInterface |
EzSystems\EzPlatformAdminUi\Limitation\LimitationValueMapperInterface |
Forms for content creation have been moved to a new ezplatform-content-forms package.
repository-forms remains as an additional layer ensuring that your custom implementations that use the package will still work.
To use this repository, you have to add the package manually to your composer.json.
eZ Platform v3.0.2¶
ezplatform-admin-ui v3.0.2¶
The following classes have been moved to EzPlatformContentFormsBundle:
| Former location | Current location |
|---|---|
EzSystems\EzPlatformAdminUi\Form\Data\User\UserPasswordChangeData |
EzSystems\EzPlatformUser\Form\Data\UserPasswordChangeData |
EzSystems\EzPlatformAdminUi\Form\Data\User\UserPasswordForgotData |
EzSystems\EzPlatformUser\Form\Data\UserPasswordForgotData |
EzSystems\EzPlatformAdminUi\Form\Data\User\UserPasswordResetData |
EzSystems\EzPlatformUser\Form\Data\UserPasswordResetData |
EzSystems\EzPlatformAdminUi\Form\Type\User\UserPasswordChangeType |
EzSystems\EzPlatformUser\Form\Type\UserPasswordChangeType |
EzSystems\EzPlatformAdminUi\Form\Type\User\UserPasswordForgotType |
EzSystems\EzPlatformUser\Form\Type\UserPasswordForgotType |
EzSystems\EzPlatformAdminUi\Form\Type\User\UserPasswordForgotWithLoginType |
EzSystems\EzPlatformUser\Form\Type\UserPasswordForgotWithLoginType |
EzSystems\EzPlatformAdminUi\Form\Type\User\UserPasswordResetType |
EzSystems\EzPlatformUser\Form\Type\UserPasswordResetType |
EzSystems\EzPlatformAdminUi\Validator\Constraints\Password |
EzSystems\EzPlatformUser\Validator\Constraints\Password |
EzSystems\EzPlatformAdminUi\Validator\ConstraintsPasswordValidator |
EzSystems\EzPlatformUser\Validator\Constraints\PasswordValidator |
EzSystems\EzPlatformAdminUi\Validator\Constraints\UserPassword |
EzSystems\EzPlatformUser\Validator\Constraints\UserPassword |
EzSystems\EzPlatformAdminUi\Validator\Constraints\UserPasswordValidator |
EzSystems\EzPlatformUser\Validator\Constraints\UserPasswordValidator\ValidationErrorsProcessor |
The following methods have been moved to EzPlatformUserBundle:
| Former method | Current method |
|---|---|
EzSystems\EzPlatformAdminUi\Form\Factory\FormFactory::changeUserPassword |
EzSystems\EzPlatformUser\Form\Factory\FormFactory::changeUserPassword |
EzSystems\EzPlatformAdminUi\Form\Factory\FormFactory::forgotUserPassword |
EzSystems\EzPlatformUser\Form\Factory\FormFactory::forgotUserPassword |
EzSystems\EzPlatformAdminUi\Form\Factory\FormFactory::resetUserPassword |
EzSystems\EzPlatformUser\Form\Factory\FormFactory::resetUserPassword |
EzSystems\EzPlatformAdminUi\Form\Factory\FormFactory::updateUserSetting |
EzSystems\EzPlatformUser\Form\Factory\FormFactory::updateUserSetting |
The following classes have been moved to EzPlatformContentFormsBundle.
| Former location | Current location |
|---|---|
EzSystems\EzPlatformAdminUi\Validator\ValidationErrorsProcessor |
EzSystems\EzPlatformContentForms\Validator\ValidationErrorsProcessor |
EzSystems\EzPlatformAdminUi\Validator\Constraints\FieldTypeValidator |
EzSystems\EzPlatformContentForms\Validator\Constraints\FieldTypeValidator |