Skip to content

Release Notes

Compare
Choose a tag to compare
@rgrebenchuk rgrebenchuk released this 15 Aug 19:46
· 24058 commits to master since this release

The most significant change in Oro Platform 1.10 is the new web API. We have developed very powerful Action concept. And finally, we kept pace with the new developments by adding support of PHP 7 and Symfony 2.8.

New web API

In course of 1.10 release we have developed a completely new automated Oro Platform API that is based on entity metadata. This means that after you create an entity, all of its fields and relations become immediately available via API—so you can get their contents, create new records, and update and delete existing records immediately.

The new API is based on JSON API specifications. It supports all standard HTTP methods for a RESTful service:

  • GET
  • POST
  • PATCH
  • DELETE

Both GET and DELETE methods support massive operations with options for filtering and sorting the set of records. GET also supports field configuration, so you can limit the request with the specific set of fields. API methods for sub-relations are supported too. This means that you are able to manipulate the exact record(s) from the collection of related entities—e.g. only the specific contact of an account.

Documentation for all API methods is (mostly) automatically generated. It can be accessed via the sandbox at http://YourOroPlatformAppURL/api/doc/rest_json_api.

The new API is disabled by default for backwards compatibility reasons. You have to enable it explicitly for every new entity.

The old API is deprecated, but will still be available for at least the next two release cycles to give you the time to transition to the new API. We recommend doing it as soon as possible, as none of the new features support the old API.

Actions

Actions are configurable sets of operations to be executed by the system. Every action is a combination of three components:

  • A trigger—an event that determines what starts an action. Triggers can be UI buttons, entity-related events, or time-related events.
  • A data selection query that determines a dataset to which action will be applied.
  • A function that in turn is a combination of elementary operations with system entities. Functions may also include conditions, call another functions, and ask the user to supply necessary data via forms.

The definition of an Action is very similar to workflow transition, and indeed they have the same roots. However, Actions are more powerful and versatile—they can be launched and executed not only by the user, but also automatically by the system. The most significant advantage of Actions over custom "buttons" is that the entire Action definition is stored in the .yml config file and requires no PHP code. This means that in the future Actions can be fully configured from the UI.

So far, Actions exist only by themselves and can be utilized to perform "individual" tasks. Available Action examples in Oro applications are conversion of Lead to Opportunity in OroCRM (the UI-triggered action), or auto-expiration of a Quote in OroCommerce (the time-triggered action). In the future, however, we plan to allow to reuse Actions as workflow transitions, thus giving them even more versatility.

PHP 7 compatibility, PHP 5.4 discontinued

Since the release of PHP 7 numerous application tests indicated that upgrade to this version not only helps streamline application development but also brings in significant performance gains in page response times and memory consumption. This release opens these benefits to the entire Oro Community by introducing compatibility of Oro Platform with PHP 7.

To make it possible to write code that is portable between PHP 5 and PHP 7 we've added new symfony/polyfill-php70 dependency. We also decided to discontinue support for the older PHP 5.4 version. The 5.4 version will remain supported in older versions (1.9.x and below) during their current life cycle, but is not supported from this release onwards.

Symfony 2.8 support

In this release we have also upgraded the Oro Platform to support the LTS version of Symfony – 2.8.

Application unbundling

We continue our effort to unbundle our Oro applicatins and introduce various functional bundles as part of the platform. In this release, both TaskBundle and CallsBundle were moved to separate packages that are now available on their own.

CLI notifications for users

System administrator can now send notifications to all application users via command line interface or from the UI. This feature is useful for notifications about planned shutdown for maintenance or other system-wide announcements.