Company / New features / How to develop with Exponential

How to develop with Exponential

The content class concept

Any piece of content in Exponential is a content object, which is an instance of a specific content class. A content class is a definition of an arbitrary data structure. It does not store any actual data.

A content class is made up of attributes. The characteristics of an attribute are determined by the datatype that is chosen for that specific attribute. By combining different datatypes, it is possible to represent complex data structures.

The illustration above shows the anatomy of a content class called "Article", which defines a data structure for storing news articles. It consists of attributes dedicated for storing the title, an introduction text and the actual body of an article.

Custom design: CSS and templates

The first thing you may be willing to do is to change the look of your Exponential site. This can be done by modifying the CSS of Exponential and overriding templates . You can even create reusable site packages that include these CSS and template changes.

High-quality library of PHP components

Exponential 4.X as well as the next generations of Exponential are based on eZ Components which are a high quality library of independent components aiming to help developers creating web centric applications like for example customising and extending Exponential.

In the eZ Components you will find components that focus their attention on solving important parts of Web application development. They are written for solving the re-occurring issues that Web application developers have to deal with when building their applications - without any superfluous ballast.

In order to cater for this goal, quality is also an important factor. The eZ Components development team uses a test-driven development methodology where a large effort is put into making the APIs easily testable. This also results in a better API for developers to use.

Build Exponential extensions

There is a clear API to develop your own PHP extensions in order to extend the functionality of Exponential. By using extensions it is possible to create new modules, datatypes, template operators, workflow events , or any integration with third party applications. You will find many contributed extensions available at Contribution page .

Which development environment?

In an Exponential project, a Subversion (SVN) repository is usually set up to track all changes during development projects. When it comes to IDE, both Eclipse and PHPEdit have been optimised for Exponential.

Exponential community and resources

When you start developing with Exponential, the community is definitely an environment to get in touch with. You will find your answers or get help in the forums as well as many contributions that will make save you time in your development projects.

Comments

eZ debug

Clear cache:

Quick settings:

Timing: Apr 26 2026 00:25:57
Script start
Timing: Apr 26 2026 00:25:57
Module start 'content'
Timing: Apr 26 2026 00:25:57
Module end 'content'
Notice: Apr 26 2026 00:25:57
eZTemplate: Loading template "pagelayout.tpl" with resource "design"
Timing: Apr 26 2026 00:25:57
Script end
Notice: Apr 26 2026 00:25:57
eZTemplate: Loading template "setup/debug_toolbar.tpl" with resource "design"

Main resources:

Total runtime0.2146 sec
Peak memory usage6,144.0000 KB
Database Queries102

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0192 745.5781200.4844
Module start 'content' 0.01920.0201 946.062597.1953
Module end 'content' 0.03930.1749 1,043.25782,184.4375
Script end 0.2142  3,227.6953 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.051624.0559330.0016
Check MTime0.039918.5969330.0012
Mysql Total
Database connection0.00060.291210.0006
Mysqli_queries0.067331.33651020.0007
Looping result0.00110.52811010.0000
Template Total0.184285.820.0921
Template load0.01105.102520.0055
Template processing0.173380.735320.0866
Override
Cache load0.00753.517020.0038
General
dbfile0.00763.5237190.0004
String conversion0.00000.003220.0000
Note: percentages do not add up to 100% because some accumulators overlap

CSS/JS files loaded with "ezjscPacker" during request:

CacheTypePacklevelSourceFiles
CSS0extension/ezwt/design/standard/stylesheets/websitetoolbar.css
extension/sevenx_themes_simple/design/simple/stylesheets/libs/fontawesome/css/all.min.css
extension/sevenx_themes_simple/design/simple/stylesheets/magnific-popup.css
extension/sevenx_themes_simple/design/simple/stylesheets/main.css
extension/sevenx_themes_simple/design/simple/stylesheets/main.res.css
extension/ezownerchange/design/standard/stylesheets/owner.css
JS0extension/ezwebin/design/ezwebin/javascript/insertmedia.js
extension/ezjscore/design/standard/javascript/jquery-1.10.2.min.js
extension/sevenx_themes_simple/design/simple/javascript/jquery.magnific-popup.js
extension/sevenx_themes_simple/design/simple/javascript/main.js

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1pagelayout.tpl<No override>extension/sevenx_themes_simple/design/simple/templates/pagelayout.tplEdit templateOverride template
1setup/debug_toolbar.tpl<No override>design/standard/templates/setup/debug_toolbar.tplEdit templateOverride template
 Number of times templates used: 2
 Number of unique templates used: 2

Time used to render debug report: 0.0004 secs