Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Coming from eZ Platform or Ibexa

For developers who know eZ Platform or Ibexa DXP and OSS. The content model you know is the same, and this page shows what differs in templates, configuration, extension points and delivery. It also covers the two…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/cms-developers/coming-from-ez-platform-or-ibexa.md

On this page

Coming from eZ Platform or Ibexa

This page is for developers who have built sites on eZ Platform or Ibexa DXP or OSS and now work with Exponential. You already know the content model: it is the same one. What changes is the layer above it. This page tells you what carries over unchanged and what to relearn, and it points to the migration chapter for real projects.

Exponential is led by 7x and the Exponential Foundation; it is not associated with eZ Systems or Ibexa.

Contents

  1. Two Exponential destinations
  2. What you already know
  3. What differs on the legacy kernel
  4. Field types and datatypes
  5. Configuration: YAML to INI
  6. Templates: Twig to TPL
  7. Bundles to extensions
  8. Where to go next

Two Exponential destinations

Exponential has two lines for someone coming from the Symfony platforms (chapter 16.1):

Exponential Platform (Nexus and the platform distributions)Exponential 6 (this kernel), alone or as Exponential Platform Legacy
Stackthe Symfony stack you know, with the packages swapped for the se7enxweb forksthe legacy PHP kernel: INI settings, TPL templates, modules and extensions
Your Twig and bundleskeptrewritten as templates and extensions
Effort of a movelowest: same generation, a package swaphighest: presentation and custom code are rewritten, content is kept

The legacy bridge can also run this kernel inside a Symfony platform installation, so both stacks serve one database during a transition (Legacy bridge). The pages of this section describe Exponential 6, the legacy kernel.

What you already know

The content model of every generation is the legacy kernel's own. Classes (content types), objects (content items), versions, attributes (fields), locations, URL aliases, roles and policies, sections, object states and languages are the same tables with the same meaning (16.6.1). So these pages will feel familiar:

Ibexa wordExponential wordRead
Content typecontent classContent classes and attributes
Field definition, field typeclass attribute, datatypeChoosing datatypes
Content itemcontent objectThe content model
Locationnode (location)Objects, nodes and locations
Siteaccesssiteaccess (the concept started here)Siteaccesses and multisite
Policies, limitations, sections, object statesthe sameSections, roles and policies

What differs on the legacy kernel

From 16.6.2, in short:

  • Administration. The legacy administration and the Online Editor for XmlText, instead of the Symfony admin UI.
  • Rendering. TPL templates with the override system and template fetch functions, instead of Twig, controllers and query types.
  • APIs. The legacy REST layer (ezprestapi, v1 and v2) and ezjscore server functions, instead of REST v2 and GraphQL of the Symfony stack (The REST API).
  • Features you gain. Workflow events, information collection, the shop, RSS import and export, newsletters, Exponential Layouts (ported from the upstream layouts packages), Velocity as the web server, and SQLite, MongoDB and Oracle drivers.

Field types and datatypes

Most field types are the legacy datatypes under the same identifier (ezstring, ezimage, ezobjectrelationlist and so on). The exceptions you will meet:

  • ezrichtext (DocBook) has no legacy datatype; legacy rich text is ezxmltext (Rich text). Chapter 16.6.3 has the element mapping and the two ways to handle stored DocBook.
  • ezimageasset becomes ezobjectrelation; ezcontentquery becomes a template fetch; landing pages and forms of the commercial editions are rebuilt with Exponential Layouts and information collection.

The full table: 16.6.3 Field types.

Configuration: YAML to INI

Siteaccess YAML (ibexa.system.<scope>) becomes INI files: settings/siteaccess/<name>/site.ini.append.php for a siteaccess, settings/override/ for global values, and extension/<ext>/settings/ for what your code ships. The scopes and their order are explained in Settings and INI for CMS developers; the mapping of keys is in 16.6.5.

Templates: Twig to TPL

Content view configuration (content_view with match rules) becomes override.ini rules with Match[...] keys; ibexa_render_field becomes attribute_view_gui; query types and controllers become fetch() calls in the template. Templates and overrides for CMS developers and 16.6.6 Templates: Twig to TPL take it from there.

Bundles to extensions

A Symfony bundle becomes an extension in extension/<name>: event subscribers become workflow events or event listeners, controllers become module views, Twig extensions become template operators, commands become console commands or bin/php scripts, and services become PHP classes registered through autoloads (Extensions you will write).

Where to go next

Become an Exponential Partner

Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x