- Start the project: the case, a siteaccess and a design The chess club case of the Building a Site tutorial, and the setup it begins with (a siteaccess, a design, a settings extension and a design extension), done the Exponential 6 way instead of renaming the Plain site's…
- Static analysis with PHPStan How Exponential uses PHPStan - level 1 over kernel/ and lib/ with a baseline of existing findings, what is excluded and why, running it locally and in CI, reading a finding, fixing it instead of baselining it, and…
- Template overrides: the basics An override replaces one template for some content only - articles in full view, the front page, one section. The override.ini block, where the file goes, how to check it applies, and the mistakes that stop it.
- The REST content API for apps The landing page of the REST API pages for app developers - what the ezprestapi routes at v1 and v2 give an app, the base URL, the pages in this folder and the order to read them.
- The view layer: the template language beside Twig and Blade The Exponential template language for developers who know Twig, Blade, Jinja or ERB - syntax side by side, operators instead of infix symbols, no automatic escaping, fetch in the template, the pagelayout instead of…
- View parameters, unordered parameters and POST How an address reaches a view: ordered, unordered and user parameters as eZModule::run() parses them, and reading POST and session values safely with eZHTTPTool.
- What Exponential does not cover for accessibility The known accessibility gaps the project names itself - public designs not audited, classic administration and admin3 partly fixed, online editor unverified, extensions without an overall statement, no automated engine…
- Writing good issues Report a bug or ask for a feature in a way a maintainer can act on - versions, steps to reproduce, expected and actual result, logs without secrets - with a template and what to leave out.
- The package list and package page Read Setup > Packages - the repositories and their counts, the search and filters, the cards, installer sources and the removal confirmation - and a package's own page with its details, contents, Compare, Validate and…
- Importing a package Upload an .ezpkg archive on Setup > Packages > Import new package - what is checked before anything is written, which repository the package lands in, what happens next, the upload limits and their settings, and what…
- Installing and uninstalling Install a package's items from the administration - the install page, what the install meets here by remote ID, install as drafts, install in the background, conflicts, batching - and uninstall it again, with what each…
- The package wizard The redesigned package creation wizard at Setup > Packages > Create new package - the four wizards, the steps and their buttons, the pickers, the review, where the package is written, the entry from the content tree…
- Package servers in ezupdate The Exponential package servers section of ezupdate's Package servers page (/update/servers) - the built-in server from package.ini, adding and removing your own, the Servers[] setting it writes, the server-add and…
- Fetching packages with ezupdate List the packages a package server offers on /update/packages/<server>, compare them with the local copies, fetch one (or fetch it again) into the local package repository from the page or with the fetch command, and…
- Array operators The 24 operators of eZTemplateArrayOperator (array, hash, append, prepend, merge, contains, compare, extract, extract_left, extract_right, begins_with, ends_with, implode, explode, repeat, reverse, insert, remove…
- Bumping the version before the tag The release commit - write the new number into ezinfo.php, extension.xml and the other version fields, check them, commit, and only then tag that commit - so the tag carries the right number forever.
- By hand: a template operator Add two template operators to mysite_hello by hand - the plug, the registration and the class - check them with php -l, switch them on and use them, with the output the template engine produced.
- Commit messages the project can build a changelog from The commit message format of Exponential - Added, Updated, Fixed, Removed, Renamed - why it exists, how the kernel's commit-msg hook checks it, and how to write a subject and body that explain what changed and why.
- Comparing your overrides with the standard templates Find out whether the standard templates you copied into your theme changed upstream - list your copies, diff them against the new release, and merge fixes (especially escaping and accessibility fixes) into your versions.
- Designs, siteaccesses and the design fallback chain How Exponential finds a template, stylesheet or image - site design, additional designs, extension designs and the standard design - and how to read and change the chain for each siteaccess.
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