- Database and live tests Tests that need a real database or server - the database group and tests/runtests.php with a DSN and a database per test, the MongoDB and live HTTP tests and their environment variables, how to pass passwords safely…
- Delivering updates to paying customers Ways to get theme releases to customers - public Packagist releases, a private Git repository with Composer, packages sent as files, or installing for them - with how each works and what access ends when.
- eZScript and eZCLI The reference of eZScript (instance settings, startup, getOptions, initialize, iterate, shutdown) and eZCLI (output, notice, warning, error, stylize) for command line scripts and console commands of an extension.
- Fetch functions Let templates fetch your data: function_definition.php, the collection class and its result array, a verified example, fetch aliases, and extended attribute filters for content fetches.
- Forms, CSRF protection and HTTP input Handle forms safely in views - reading input with eZHTTPTool and module actions, form tokens from ezformtoken, POST-redirect-GET, validation messages, safe redirects, uploads with eZHTTPFile, and JSON posts from scripts.
- GitHub releases Create a GitHub release for a pushed tag with gh release create - title, notes from the changelog, latest flag - check it, and know what a release adds to a tag.
- Learning from the free books Three books about the code base, kept on GitHub by se7enxweb, two under the GNU FDL: what each covers, how to read them against Exponential 6, and how to reuse them.
- License fields in your own packages Where the license of the parts you add to a bundle is written - composer.json, ezinfo.php, extension.xml, package.xml of a site package and your LICENSE file - with the SPDX identifiers Exponential uses, the strict…
- Modules, views and access control How Exponential routes a request to code and decides whether the user may run it - modules, views and policy functions in module.php, class-based views, roles, policies and limitations, the access checks of the dispatch…
- Preparing an Accessibility Conformance Report for your site For public bodies and suppliers asked for a VPAT or Accessibility Conformance Report - Exponential has none, so this page explains how to scope, test and write an honest ACR for the configuration you actually deliver.
- Reorder or remove header menu items Change the order of the header menu or take an item out, in the administration (edit the lines) or with exp:ini rem and exp:ini clear, with the real diffs the console shows.
- Response groups Ask the REST API for exactly the parts of an answer a screen needs with the ResponseGroups parameter - the groups each route knows (Metadata, Locations, Fields, FieldValues), the defaults that are always added, both…
- Run-once The run-once function prints its body only the first time it is reached during a request, which keeps markup that several included templates need (a sprite, a dialog, a data block) from appearing twice.
- Sections versus foreach The section function in full - loop over arrays, numbers and strings, name and the namespace it creates, var and the iterator with last-value, sequence, offset, max, reverse, show with section-else, the section-exclude…
- Settings files in an extension How a theme ships settings as .ini.append.php files in its settings/ folder, the file format with its PHP comment guard, which settings belong in a theme, and how to see which file wins.
- Stylesheets and scripts for your site Add your CSS and JavaScript the Exponential way - lists in design.ini, ezcss_load and ezscript_load, the ezjscore packer, cache busting, and keeping the site ready for a Content Security Policy.
- The content model for ORM users Content classes, objects, versions, translations, nodes, datatypes, sections and object states explained in the terms of an ORM - what each is in the database and in PHP, how a typical blog or catalog maps onto it, and…
- The maintainer path What maintaining an extension means week to week - issues, pull requests, releases, PHP and kernel updates, security reports, hand-over - and a routine that keeps it to a few hours a month.
- The release checklist The whole release of an extension on one page, in order - choose the number, bump the files, changelog, test, tag, push, GitHub release, Packagist, announce - each step linked to its chapter.
- The template operators builders use most A working set of about fifty template operators - escaping, strings, arrays, logic, numbers, dates, translation, URLs and settings - each with an example and the output the template engine produced.
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