- Activating an extension Switching an extension on for the installation or one siteaccess, what it writes, and the steps that make the running site see it: autoloads, caches, PHP-FPM and Velocity.
- Architecture for application creators How a request flows through Exponential - front controller, siteaccess, module and view, templates and pagelayout - and where kernel, extensions, settings, designs and var/ fit, so you know where your code goes.
- A theme by hand Build the smallest complete theme file by file - metadata, the design registration, a siteaccess, a pagelayout, a stylesheet and an override - and check each step, so you know what every file of a theme does.
- Attributes and dot notation Reading data in templates with the dot: attributes of objects ($node.name), keys of hashes, items of arrays, chained lookups ($node.data_map.image.content), dynamic keys, and how to see what attributes an object has…
- Bumping ezinfo.php and extension.xml Every release raises the version inside the extension - ezinfo.php, extension.xml, and composer.json or filelist.md5 where present - to exactly the release's number, in the commit the tag points at, never after.
- Choosing credentials for an integration The credentials Exponential accepts from other systems - OAuth 2.0 tokens, personal API keys, expservices tokens, HTTP basic authentication, session sign-in - what each is for, how it is limited, and how to store and…
- Community channels: where Exponential people meet Every place the Exponential community meets, from the community page of exponential.earth - the Share Exponential forums, Telegram, Discord and Slack, GitHub and the issue trackers, Exponential Projects, eZpedia, the…
- Containers and orchestration For platform teams in public bodies that run Exponential in Docker, Podman or Kubernetes. What the sources say about containers, what must be on a persistent volume, the one-writer rule for SQLite, and how a container…
- Data export formats for leaving or changing supplier Every way to get data out of an Exponential site and the format each one writes - the xrowextract site archive, CSV/XML/JSON per class, packages (.ezpkg), database dumps, storage files, layouts, form submissions…
- Design extensions How an extension carries a design: the DesignExtensions[] setting, the folder it points to, activating the extension for all or some siteaccesses, and what else a theme extension usually ships.
- Downloading a package by hand How to fetch an .ezpkg from the package server yourself, look inside it with tar, check that it is complete and what you expect, and import it with ezpm, the administration's upload page or the setup wizard.
- Error digest and log health The two summary pages of the log viewer - the error digest that groups and counts the last day's distinct errors per log, and log health with disk use, growth, write permissions and rotation settings - and how to use…
- Exponential 6 as the base of a bundle What a bundle built on Exponential 6 already contains before you add anything - the kernel, the extensions the root composer.json requires, Velocity, the default theme and the site packages the installers offer - and…
- eZDB: the database layer The eZDB methods extensions use - arrayQuery() with offset and limit, query(), escapeString(), generateSQLINStatement(), transactions, lastSerialID(), portable SQL helpers - and safe values.
- Following Exponential releases Where to watch for changes that affect a theme - the changelogs in doc/changelogs, release tags and GitHub releases of the repository, the upgrade notes in doc/eng-us/bc, project news and RSS - and a weekly routine.
- Keeping a fork in sync with its source Bring the original's new commits into your fork with git fetch and merge or rebase, resolve conflicts, and keep your own changes small so syncing stays easy - with the commands and a routine.
- Migrating to Exponential The landing page of the migrating stage for adopters - which migration path fits where your site runs today, what drives the effort, the phased plan with rehearsals and a rollback, and the pages for content and URLs.
- Migration recipes Twenty-five task pages for migrations in Exponential 6.0.15, each with what you will have at the end, the steps and their output, the complete PHP migration, how to check it, how to take it back and the next step - from…
- Part 4: Upgrading an old extension to Exponential 6 Part 4 of the book: bring an old extension up to Exponential 6, from the inventory and PHP 8 fixes to CSP, jQuery 4, admin4 styling, metadata and tests, with real before and after examples.
- PHP 8 errors that stop old code The PHP 8 changes that turn old extension code into fatal errors - bare-word constants, static calls, wrong argument types, count() on null, incompatible signatures - with how to find and fix each one.
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