- Interface specification template A template for specifying one integration flow with Exponential - purpose, parties, surface and endpoints, authentication, data mapping and keys, timing and volume, error handling, security, monitoring, test and…
- Mixing Exponential and a framework Patterns for projects that use Exponential and another framework together - Exponential as the content back end of a framework site, a framework service called from Exponential, Exponential inside Symfony through the…
- PHP developer FAQ Short answers to the questions PHP developers ask most about Exponential - PHP versions, PSR-4 and namespaces, type declarations, class not found, settings not applied, edits that do nothing under Velocity, databases…
- Testing applications A testing strategy for applications on Exponential - unit tests without a database, tests against a throwaway database, template and link checks, browser checks with a test user, accessibility, and what to run before…
- Custom template functions Writing a template function (a brace tag with named parameters and an optional body) in an extension - functionList, hasChildren, attributeList, process, evaluating parameters, rendering the body, registration in…
- DB-less PHPUnit tests Write fast PHPUnit tests for extension code that need no database - the bootstrap, loading your classes, testing services, validators, datatype string round trips and template operators, and running only the tests of a…
- Glossary for PHP developers The terms a PHP developer meets in Exponential code and documentation, from accumulator and append.php to worker and zygote, each with a one-line meaning and the page or file that explains it.
- Inside the core: permissions and persistent objects How a module decides access (hasAccessTo, the limitation list, error codes) and how kernel classes store themselves through eZPersistentObject, with today's static calls and links to the developer pages.
- Integration security checklist A checklist for the security review of an Exponential integration before go-live and once a year - credentials, accounts and roles, transport, input handling, outbound calls, logging, audit, data protection and incident…
- Media and images for apps The landing page of the media pages for app developers - what the REST API gives for images (the original file path), how image aliases give screen-sized versions through expimage services, and what is not possible…
- Registration order and overrides How the template engine decides which class serves an operator name - the order it reads the eztemplateautoload.php files, "last registration wins", the 21 names two classes register on a development installation, and…
- Ten pitfalls for framework developers The ten mistakes developers from Symfony, Laravel, Django, Rails and similar frameworks make most often in their first Exponential project, each with the symptom, the cause and the fix - from unescaped template output…
- Testing strategy How Exponential is tested and how to test your own changes - the layers from syntax checks and static analysis to DB-less PHPUnit suites, database tests, live-installation tests, design and quality tests, benchmarks and…
- Your own design extension Set up a small design extension (here "mysite") next to a theme, activate it in the right order, and override any template of the theme or of Layouts without touching their files. Every step tested on a copy of the Fit…
- A header menu that follows the tree The template way to a dynamic header menu - override main_menu.tpl in your design extension so the menu lists the children of the site root by class, then publish a folder and watch it appear. Tested code, settings and…
- Checklists for framework developers Four checklists for developers coming from other frameworks - evaluating Exponential for a project, setting up a development environment, reviewing a first module before it is merged, and taking an application live…
- Continuous integration for extensions Set up CI for an extension the way the kernel does it - GitHub Actions jobs for PHP syntax on every supported version, PHPUnit, static analysis, commit message checks, least privileges, and testing against the…
- DB-less tests and test suites 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…
- Full view The full view, the template of a content page: what it receives ($node, $view_parameters, $language_code), a complete article example, the one h1, sub-items with paging, handing values to the pagelayout, caching rules…
- Hide notices automatically on a date Step by step - let editors give each notice a hide date and have Exponential's hide.php cronjob hide it when the date has passed, by adding a date attribute to the class and configuring content.ini [HideSettings].
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