eZ Platform v3.0¶
Version number: v3.0
Release date: April 2, 2020
Release type: Fast Track
Overview¶
Notable changes¶
Symfony 5¶
The version 3.0 moves eZ Platform to Symfony 5.0 from the previously used Symfony 3.4.
This entails several changes to the way projects are organized. For details, see Symfony 4.0 and Symfony 5.0 upgrade documentation
Using Events instead of SignalSlots¶
The application now uses Symfony Events instead of SignalSlots. The application triggers two Events per operation: one before and one after the relevant thing happens (see for example BookmarkService).
To use Symfony Events, create Event Listeners in your code.
New bundles¶
The list of bundles in v3.0 has been extended by the following ones:
ezplatform-calendar
ezplatform-content-forms
ezplatform-kernel
ezplatform-rest
ezplatform-site-factory
ezplatform-version-comparison
For details, see Bundles.
New features¶
Dxp
Site Factory¶
The new Site management User Interface is now integrated with back office. It enables you to easily create and manage multiple sites from the back office without editing the configuration files.
For more information about enabling and configuring, see Enable Site Factory.
For more information about using the Site Factory, see User Documentation
Scheduling¶
Schedule calendar¶
You can now easily view and perform scheduling actions with the Calendar widget that is available in the back office. By default, the widget displays content items scheduled for future publication, but custom events can be configured as well. You can also filter displayed events and toggle through a day, week, and month view.
Manage planned publications with Dashboard¶
You can now reschedule or cancel planned future publications right from the Dashboard.
Schedule hiding a content item¶
You can now schedule hiding content items. Using Calendar widget available in the back office you can also reschedule or cancel hiding a content item.
Defining buttons in Online Editor¶
You can now reorder and disable buttons in Online Editor using YAML configuration.
Workflow improvements¶
Workflow actions¶
You can now configure your workflows to automatically publish content.
You can also create custom workflow actions.
Reviewers¶
When sending content through a workflow, the user can now select reviewers. You can require the user to select reviewers when sending content through the workflow.
In the configuration, you can also set the workflow to automatically notify the selected reviewers.
Quick review¶
A built-in Quick Review offers a quick workflow configuration for your basic needs.
Custom transition color¶
You can configure a custom color for each of the transitions defined in the Workflow.
Version comparison¶
You can now compare two versions of the same content item and preview changes in their Fields:
Universal Discovery Widget¶
The Universal Discovery Widget (UDW) has been re-designed and re-written. New functionalities and changes include:
- new configuration
- filtered search
- resizable column with custom sort order
- editing content from UDW (Enterprise only)
For full list of changes, see Backwards compatibility doc and Configuration.
Field types¶
Content query field type¶
The new Content query field type enables you to configure a Content query that uses parameters from a Field definition.
Field type creation¶
You can now use Generic field type as a template for your custom field types.
Keyword field type¶
The keyword
field type can now recognize versions of a content item.
Login and password options¶
Login by User name or email¶
You can now give your users th ability to log in with User name or with email.
Password rules¶
You can now set password expiration rules for user passwords.
Duplicate a role¶
You can now duplicate a role with a single click in the back office.
REST API reference¶
The REST reference has been moved from Kernel to a new page, eZ Platform REST API.
Search Criteria¶
The following new Search Criteria have been added:
Search Criterion | Search based on |
---|---|
IsUserBased | Whether content represents a User account |
IsUserEnabled | Whether a User account is enabled |
ObjectStateIdentifier | Object state Identifier |
SectionId | ID of the Section content is assigned to |
SectionIdentifier | Identifier of the Section content is assigned to |
UserEmail | Email address of a User account |
Sibling | Locations that are children of the same parent |
UserId | User ID |
UserLogin | User login |
Random sorting¶
The list of common Sort Clauses has been extended by the Random sorting option.
Contextual Twig variables¶
You can now create custom Twig variables for use in templates. They can be defined per SiteAccess, or per content view.
Built-in Query Types¶
Five built-in ready-to-use Query Types have been added: Children
, Siblings
, Ancestors
, RelatedToContent
, and GeoLocation
.
You can now use the ez_render_content_query
and ez_render_location_query
Twig functions
to make use of Query Types that don't use the current content or Location.
Grouping blocks in Page Builder¶
You can now assign Page Builder blocks to groups using the ezplatform_page_fieldtype.blocks.<block_name>.category
setting.
Bulk actions in Sub-items list¶
You can now use the Sub-items list to quickly hide, reveal, to add Locations to multiple content items.
Tooltips¶
You can now add custom tooltips to provide more information for the users when they hover over, focus on, or tap an element.
Thumbnails¶
The new thumbnails API allows you to easily choose an image for each content.
For more information, see Extending thumbnails.
Type hints for public PHP API¶
Strict types have been added to public PHP API methods. For a complete list, see backwards compatibility breaks.
Other changes¶
GraphQL¶
In GraphQL, you can now query Locations and their children.
Translations¶
Improved translating of notifications¶
TranslationService
isn't injected into the NotificationService
.
You can now use TranslatableNotificationHandlerInterface
for translated notifications.
Multilingual content route¶
New multilingual content route for internal translations has been added.
Renamed templates and parameters¶
Templates and parameters used by the back office have been renamed for consistency. For A full list of changes, see Backwards compatibility doc.
HTTP Cache¶
HTTP cache bundle now uses FOS Cache Bundle v2. For a full list of changes this entails, see Backwards compatibility doc.
Helpers¶
New helper method window.eZ.helpers.contentType.getContentTypeName
replaces deprecated ContentTypeNames
.
User field type¶
User data is now treated as an external storage.
SiteAccess-aware Repository¶
The Repository now uses the SiteAccess-aware layer by default. This means that Repository objects are now loaded in the translation corresponding to the SiteAccess.
REST API¶
Revealing and hiding content can now be performed via REST API.
PHP API¶
New methods have been introduced to the PHP API:
\eZ\Publish\API\Repository\Values\Content\ContentInfo::getContentType
\eZ\Publish\API\Repository\Values\Content\ContentInfo::getSection
\eZ\Publish\API\Repository\Values\Content\ContentInfo::getMainLanguage
\eZ\Publish\API\Repository\Values\Content\ContentInfo::getMainLocation
\eZ\Publish\API\Repository\Values\Content\ContentInfo::getOwner
\eZ\Publish\API\Repository\Values\Content\VersionInfo::getCreator
\eZ\Publish\API\Repository\Values\Content\VersionInfo::getInitialLanguage
\eZ\Publish\API\Repository\Values\Content\VersionInfo::getLanguages
\eZ\Publish\API\Repository\Values\Content\Location::getParentLocation
Deprecations and removals¶
For full list of deprecations and removals, see eZ Platform v3.0 deprecations and backwards compatibility breaks.
SignalSlots¶
SignalSlots are removed from the application. Use Event Listeners in your code instead.
Deprecated field types¶
The deprecated ezprice
and ezpage
field types have been removed.
Nameable field type interface has been removed and replaced by eZ\Publish\SPI\FieldType\FieldType::getName
.
For a full list of changes on field types, see Backwards compatibility doc.
Elasticsearch¶
Elasticsearch support has been dropped.
REST server¶
REST-related code has been moved from Kernel to a new ezsystems/ezplatform-rest
package.
Following the change, the REST client has been removed from Kernel.
Kernel¶
ezpublish-kernel
has been replaced by ezplatform-kernel
.
Online Editor¶
Online Editor front-end code and assets have been moved to the ezplatform-richtext
repository.
For a full list of resulting changes, see Backwards compatibility doc.
Configuration through ezplatform
¶
In YAML configuration, the main configuration key is now ezplatform
instead of ezpublish
.
Content forms¶
The new ezplatform-content-forms
package contains forms for content creation moved from repository-forms
,
while content type editing has been moved to ezplatform-admin-ui
from repository-forms
.
Custom Installers¶
The Symfony Service definitions, providing extension point to create custom installers, have been removed.
Requirements changes¶
eZ Platform now requires using PHP 7.3. For full list of, see eZ Platform requirements.
Note
Some OS-es, such as Ubuntu 10.x or CentoOS 8.x come with PHP 7.2. In such cases remember to manually update the PHP version.
Updating¶
For the upgrade details, see eZ Platform v3.0 project update instructions.
Full changelog¶
eZ Platform v3.0.2¶
Sort Trash items¶
Public PHP API SortClause
has been exposed for TrashService
queries:
eZ\Publish\API\Repository\Values\Content\Query\SortClause\Trash\DateTrashed
(to be used by \eZ\Publish\API\Repository\TrashService::findTrashItems
only).
It enables you to sort Trash items by date.