Recent changes
Wednesday November 04 2026
-
Architecture overview Updated Markdown page
The layers of an Exponential installation and what each is responsible for - servers, the kernel entry points, the domain classes, the libraries, the presentation layer, extensions, settings and var/ - with the…
-
Backward compatibility policy Updated Markdown page
What counts as a breaking change in Exponential - settings, templates, PHP API, database, command line, behavior and files - the rules that come with one (upgrade notes, opt-in behavior, safe defaults, no renamed…
-
Cache invalidation and clearing Updated Markdown page
How Exponential invalidates its caches on its own (eZContentCacheManager on publish, the content/cache event, expiry timestamps, query cache table tracking) and how to clear them by hand by id or tag, which change needs…
-
Caching layers for engineers Updated Markdown page
Every cache between a visitor and the database of an Exponential site, seen by an engineer - what each layer stores, what it is keyed on, whether it ships on, who it serves, which servers share it, and the correctness…
-
Changelogs and upgrade notes Updated Markdown page
Where Exponential records what changed and what an installation has to do about it - the changelog pages per version and per extension, the Added, Updated, Removed and Renamed sections, the upgrade notes in…
-
CI gates Updated Markdown page
The continuous integration of Exponential as a set of gates - the Quality, PHPUnit, Performance and CI health workflows, what blocks and what only warns, how pull requests are tested as merged into main, how to…
-
Code review checklist Updated Markdown page
A checklist for reviewing a change to the Exponential kernel or an extension - scope and history, layering and naming, compatibility with PHP 8.0 and every database and server, tests, caches and deploy, settings…
-
Concurrency, statics and long-lived processes Updated Markdown page
How to write Exponential code that is correct when one PHP process serves many requests and many processes serve one site - static caches and singletons, idempotent registrations, exit and cleanExit, class_exists guards…
-
Console, cronjobs and background work Updated Markdown page
How work runs outside a web request in Exponential - the console and its command discovery, eZScript, cronjob parts run by runcronjobs.php, content jobs for large content operations, the expqueue job queue for…
-
The content model for engineers Updated Markdown page
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…
-
Contributing upstream Updated Markdown page
How an engineer sends a change to the Exponential kernel or one of its extensions - forking and branching, the checks to run first, the copyright assignment (CLA) required for kernel contributions and what it means…
-
Databases: choosing and running one Updated Markdown page
The six databases Exponential 6.0.x supports, in the project's order of preference - SQLite 3, PostgreSQL, MongoDB, MariaDB, Oracle, MySQL - compared as an engineer compares them - driver, CI coverage, multi-node use…
-
DB-less tests and test suites Updated Markdown page
How the PHPUnit configuration of Exponential is organized - the bootstrap, the suites in phpunit.xml, the excluded groups, the PHPUnit version per PHP version - and how to write and run tests that need no database, plus…
-
Dependency management with Composer Updated Markdown page
How Exponential manages its dependencies with Composer - the root package and its type, extensions as se7enxweb packages with tilde constraints, no committed lock file, the branch alias for main, the development tools…
-
Deploying a change Updated Markdown page
How a PHP, settings, template or stylesheet change reaches every runtime that serves an Exponential site - the steps of exp:velocity deploy and why their order matters, PHP-FPM reloads and OPcache, Velocity restarts…
-
Design review checklist Updated Markdown page
A checklist and template for reviewing the technical design of a system built on Exponential - requirements and fit, product and stack, content model, data and database, runtime and caching, scaling and availability…
-
Documentation as code Updated Markdown page
How Exponential treats its documentation like code - Markdown files in doc/ versioned with the kernel, served by the help system inside the administration, front matter that drives audiences and search, a link and image…
-
Evaluating Exponential Updated Markdown page
A structured technical evaluation of Exponential for a project - the questions to answer about fit, runtime, data, performance, security, quality, maintenance and licensing, how to answer each one from the code and the…
-
Events, extension points and plugins Updated Markdown page
How behavior is added to Exponential without forking it - the in-process event bus ezpEvent with notify and filter, handlers named in settings, datatypes, workflow event types, template operators, fetch functions, login…
-
Exponential for software engineers Updated Markdown page
The whole system on one page for an engineer from any language background - runtime, stack, process model, data stores, configuration, extension model, quality gates and release rules, each with the file or document…