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

Exponential for CMS developers

For CMS developers meeting Exponential for the first time, what the system is, where it comes from, how an installation is laid out, what happens during a request, what ships in the box, and how site projects are…

Download as PDF

Address: https://doc.exponential.earth/learninminutes/exphelp/viewer/help/cms-developers/exponential-for-cms-developers.md

On this page

Exponential for CMS developers

This page is for developers who build sites and are new to Exponential. It gives the system in overview: what it is, how an installation is organized, what a request goes through, and how a site project is usually structured. The following pages go deep on each part.

Contents

  1. What Exponential is
  2. Where it comes from
  3. An installation on disk
  4. A request, step by step
  5. What ships in the box
  6. How a site project is built
  7. What you will learn first

What Exponential is

Exponential 6 is a content management system written in PHP, for PHP 8.0 to 8.5 (PHP 7.4 usable without support), licensed GPL 2.0 or later (root composer.json). Its core ideas:

Where it comes from

Exponential continues the code base of a CMS that its creator discontinued after almost 18 years. 7x, the company that leads Exponential, has published the 6.0.x releases since the start of 2024, and the Exponential Foundation is the nonprofit behind the project; neither is associated with eZ Systems or Ibexa (Who is 7x?, Who is the Exponential Foundation?). Developers who know eZ Platform or Ibexa will recognize the content model: Coming from eZ Platform or Ibexa.

An installation on disk

index.php                 the front controller
kernel/                   the kernel: content, user, shop, workflow, setup ... modules and classes
lib/                      libraries: template engine, database, INI, utilities
design/                   shipped designs (standard, admin designs)
settings/                 shipped default settings; never edited
  override/               this machine's settings (database, mail, hosts); never committed
  siteaccess/<name>/      settings of one siteaccess
extension/                every extension: shipped ones from Composer, and yours
var/                      storage (uploaded files), caches, logs
bin/php/                  command line scripts; bin/php/console is the console

The map with every directory and its purpose: The developer's map and Directories under var.

A request, step by step

  1. The web server (Velocity, FrankenPHP, or Apache or nginx with PHP-FPM) hands the request to Exponential.
  2. The siteaccess is chosen from the host, port or first path element; its settings apply from now on.
  3. The URL alias is translated to a module and view, for content content/view/full/<node id>.
  4. The view checks permissions, then renders: for content, the node's view template chosen by override rules, or the stored copy from the view cache.
  5. The result is placed in the pagelayout, which may draw a layout of Exponential Layouts around it.
  6. The answer goes out, possibly kept by the HTTP cache or Velocity's response cache for the next visitor.

Each step has its page: URL aliases and routing, Sections, roles and policies, Caching for CMS developers.

What ships in the box

AreaBuilt in or in the default distribution
Content35 kernel datatypes, versions, translations, relations, object states, trash, rich text with the Online Editor
Site buildingdesigns and override rules, view modes, Exponential Layouts, site packages with demo sites
Usersuser accounts as content, groups, roles and policies, registration, two-factor sign-in
Processesworkflows (approval, dated publishing), cronjobs, notifications, information collection, a shop
Deliverythe REST interface (ezprestapi), expservices, RSS, sitemaps, search (built in, or Solr through eZ Find)
Operationthe console (./console), Velocity, caches at several layers, audit trail, maintenance mode
DatabasesSQLite 3, PostgreSQL, MongoDB, MariaDB, Oracle and MySQL (Database support)

The list of every feature of the 6.0 line: Features of 6.0.

How a site project is built

StepPage
Set up a development installationDevelopment environment
Design the content model, then create the classesDesigning a content model, Creating a content class
Build the design and templates in your extensionTemplates and overrides for CMS developers
Decide which pages editors compose with LayoutsLayouts for CMS developers
Configure roles, languages and siteaccessesSections, roles and policies, Translations and languages
Import contentImporting content
Deploy and launchDeploying a site, Project launch checklist

Two ways of building meet in every project: templates in a design extension, and the Layouts editor without code (Two ways to build).

What you will learn first

Three habits make everything else easier: think in classes and nodes, never edit shipped files, and know which cache follows which change. The Reading paths page orders the rest by the time you have.

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