- The content model for engineers The Exponential content model as a data model - classes and attributes defined at run time, objects with versions and translations, nodes in a tree, datatypes that own storage and validation, sections, object states and…
- Autoloads and class maps How Exponential finds PHP classes - the generated class maps for the kernel, the extensions, kernel overrides and tests, every option of bin/php/ezpgenerateautoloads.php, .autoloadignore, Composer's autoloader beside…
- By hand: a workflow event A workflow event type "Log publishing" by hand: the class, the registration, the view template, a workflow and a trigger, and the log line it writes.
- Caching and templates The caches a template meets: compiled templates, the view cache, cache-block, override and design caches, HTTP and Velocity caches; what clears each automatically and how to clear it by hand.
- Case study: porting a package from another project with credit How two extensions brought in outside code and credited it - sevenx_dse embedding a database tool from a chain of forks, expchangeclass merging two forks - and what to check in your own port.
- Comments Template comments that never reach the browser, how to document a template's variables and purpose at its top as the shipped designs do, commenting out code, and why HTML comments are the wrong tool.
- Cronjobs for integrations Scheduling integration work with Exponential's cronjob parts - a part of your own, the script as a class, the crontab line per siteaccess, locking against overlapping runs, pausing a part during maintenance, and…
- Datatypes A new kind of field for content classes: when to write one, how the kernel finds and registers it, the eZDataType life cycle, a verified rating datatype, and real ones to learn from.
- Fields and field values Read and parse the fields of Exponential content in an app - the field routes, the five keys of a field object, how the value is written for rich text, images, blacklisted datatypes and every other datatype, and how to…
- Give log access without admin rights Step by step - let a developer, support engineer or operator read Setup > Log files, the error digest and log health with personal data masked, without full access, and decide separately about managing and unmasking…
- Giving a theme its own settings file Give a theme its own settings file (mytheme.ini) with documented defaults, read it from templates with ezini() and from PHP with eZINI, and let installations override it safely.
- Header menu troubleshooting The new header menu item does not appear - the causes found on a real installation, in the order to check them - compiled template, page cache, wrong file or scope, wrong siteaccess, a node that cannot be fetched…
- Inline CSS to stylesheets Move an old extension's style blocks and style attributes into stylesheet files loaded through design.ini, so the packer bundles them and a Content Security Policy with style-src self does not drop them.
- Linking versus copying: citing sources fairly When to link to a source, when to quote it, when you may copy and adapt it, and how to give credit in code comments, READMEs, documentation and commit messages - with the patterns this project uses.
- Migrations and seed data: .dba schema files and packages What replaces migration classes, seeders and fixtures in Exponential - database-neutral .dba schema files, ezsqldumpschema and ezsqlinsertschema, an idempotent install command, upgrade steps you ship, db_data.dba seed…
- Persistence and the database layer How Exponential talks to its database - the eZDB factory and drivers, eZPersistentObject as the table mapper, transactions that nest by counting, the SQL query cache, isolation levels, and the rules every query must…
- PHP string functions: search and compare The searching, comparing and similarity operators of eZTemplateStringsOperator (strlen, strpos, stripos, strrpos, strripos, strstr, stristr, strrchr, strpbrk, strspn, strcspn, substr_count, str_contains…
- Site packages in a bundle How a bundle chooses, carries and installs a site package - what a site package is, the packages the 6.0.15 index offers, how each installer names the package, why a bundle should ship the exact .ezpkg files it tested…
- What cannot be exported For public bodies planning how to answer access and portability requests - the limits of Exponential's exports (no single export of a person's data, accounts as content objects, form submissions per form, pseudonymized…
- When a release goes wrong What to do when a published theme release is broken - leave it in place, fix forward with the next version, say plainly what was wrong, and tell users which version to move to.
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