Forest header image

Symfony Finland
Random things on PHP, Symfony and web development

Integrating eZ Platform + Doctrine Entities with the Symfony Framework

eZ Platform is a next generation Content Management System which went through a complete technical reboot in 2012-2015. With the first release of eZ Platform and the complimentary product, eZ Studio the system is now completely modernized and running on the Symfony Full Stack Framework.

Leveraging a comprehensive web application development framework like Symfony is an advantage for the development of eZ Platform. The added benefit is that existing Symfony Framework applications can be integrated to it without rewriting them.

eZ Platform uses the Symfony Standard Edition as the starting point and adds functionality with the Bundle extension mechanism. On the lower lever it uses Doctrine DBAL for database level abstractions. A lot of Symfony developers on the otherhand use Doctrine ORM (Object Relational Mapper) to work with Entities.

Doctrine ORM is completely separate from the eZ Platform content repository, but shares the configuration by default. This makes it easy to setup a hybrid application where content is stored in the Content Repository and other data in the ORM generated tables.

Symfony itself does not define a specific Model, so you're not limited to working with Doctrine compatible SQL databases, but can access NoSQL stores or Graph Databases (eZ Platform and a Graph Database) within the same codebase very fluent. Generating the variables sent to the Twig templating system in the Controller can be a mix of Content and other data entities.

Possible use cases for this would be to enrich content with data that has no business in being in in a CMS store using the extensible REST API framework for consumption by rich frond ends built with React or Angular. Or alternatively you could just use the UI to gather together different microservices to provide users a unified editing experience, regardless of where the and how the data is stored.

Demonstration

Below is a short screencast of how the integration works in practise, with the EasyAdminBundle CRUD embedded in the eZ Platform UI for a unified editor experience. It also demonstrates how the session is shared between the CRUD and the Content UI.

If you are interested in the subject and want to learn more, there is a workshop about the topic in the SymfonyLive Cologne event on the 28th of April, 2016:

Workshop: Integrating existing Symfony framework applications to eZ Platform, a full stack Symfony CMS

eZ Platform is the next generation content management platform from eZ Systems. It is a ground-up new CMS built on over 15 years of experience with Content Management. Built using the Full Stack Symfony Framework, it is able to integrate existing Symfony2 functionalities. Your application can use and combine functionalities from the eZ content repository and your custom functionalities, including Doctrine ORM entities and so on. In this workshop we’ll discover what eZ Platform offers developers and how you can integrate your existing Symfony Bundles to it.

Learn more about SymfonyLive Cologne on the website: SymfonyLive Cologne 2016


Written by Jani Tarvainen on Friday March 25, 2016
Permalink - Tags: doctrine, ez, symfony, integration

« Content versus Data (and Context) - Angular 2 server side rendering coming to Symfony and Twig »