We’ve completed the first 1-week sprint in the v2 project! This first sprint (“Sprint Zero”) was purely exploratory, starting with some prototyping to get our hands dirty and see what’s possible. We met our goal of answering questions (and generating new ones!), and we’re pleased with the results. More below:
Prototype 1: PlatformUI Symfony/JS Hybrid
We’ve created a prototype of the integration of the 1.x Subitem and Universal Discovery Widget in a Symfony App (mostly rendered server side):
Sub-Item and UDW are working as in 1.x. The patch includes some documentation on how it is made so that others can try with other components.
This is using WebComponents to provide a Public API to use components in the UI, theoretically allowing us to start by having them implemented in YUI and gradually move to another technology without breaking usability of existing functionality.
Prototype 2: ContentField Editing
We’ve created a prototype of draft creation from an existing content item using Symfony Forms: ezsystems/repository-forms/pull/111. Includes the MapLocation FieldType’s FieldValue form as a bonus.
Symfony Forms and FieldType Edit integration tutorial. Includes documentation for multi-field FieldTypes, such as MapLocation.
Research on FieldType simplification. Digs in the general direction of describing a FieldType with a high level language (here: YAML), and using that for generating code. Describes possible simplifications in Legacy Storage Field Converters.
JSON Schema is a standard to describe data formatting. The biggest benefit from using JSON Schema is to make it easier for Partners to use FieldTypes in the framework of their choice. We prepared a report on how we want to take advantage of this in our FieldType definitions.
Online playgrounds with JSON Schema:
Prototype 3: eZ Platform running on, and using, Symfony 3
It is no secret that we plan to upgrade eZ Platform 2.x to Symfony 3, and thanks to continued focus on this goal over last year, we’ve been removing use of any deprecated Symfony features. The effort to get eZ Platform to boot on Symfony 3 only took a few days.
The last part of the work can be found in #167 [WIP] 2.0, and it contains mainly two things: adoption of eZ Platform to the Symfony 3 structure, and other changes done in Symfony Standard. We’re also changing to use Symfony 3.2 env() runtime variable handling for parameters that can safely be set during runtime, allowing us to inject variables when running on cloud systems like Docker and similar, removing the need for customizations like env/docker.php.
The work above also builds upon a refactoring being done on the eZ Platform Kernel, moving it from Stash to Symfony Cache. This is done to make the cache more reliable and faster. In regard to speed, we have measured ~20% improvement on single servers and expect a lot more on clusters with latency to memcached/redis. Further reading:
Sprint 1 has begun, with continuing attention focused on the prototypes.
Thanks to Bertrand Dunogier, Damien Pobel, Dariusz Szut, and André Rømcke for their contributions to this team blog post!