Recent changes
Wednesday November 04 2026
-
Configuration: INI files instead of YAML, PHP arrays or .env Updated Markdown page
How Exponential is configured, for developers used to config/*.yaml, config/*.php, settings.py or application.properties - INI files in layers (defaults, extensions, siteaccesses, override), the order in which they win…
-
Controllers: module views Updated Markdown page
Where a framework has controllers and actions, Exponential has module views - a view script or an Exponential\Runnable\ModuleView class that receives the address parameters and returns a result array - how to write one…
-
Debugging, logging and errors Updated Markdown page
The Exponential counterparts of the Symfony profiler, Laravel Telescope and Debugbar, Django Debug Toolbar and framework loggers - debug output and the Exp debug bar, template path comments, eZDebug and eZLog, the log…
-
Dependency injection and services: what exists Updated Markdown page
An honest answer to "where is the service container?" - the legacy kernel has none of its own; classes are found through a generated class map, singletons and handler classes named in INI settings; how to write testable…
-
Environments and secrets: EXP_ENV and settings/override Updated Markdown page
The Exponential counterpart of APP_ENV, .env files, Rails credentials and Spring profiles - the EXP_ENV constant in config.env.php, settings variants per environment, what the environment name changes, where secrets…
-
Events and listeners: ezpEvent Updated Markdown page
The in-process event bus of Exponential compared with Symfony's EventDispatcher, Laravel events, Django signals and Spring application events - notify and filter events, registering listeners in site.ini, the events the…
-
Exponential for web framework developers Updated Markdown page
What Exponential is when you look at it with the eyes of a Symfony, Laravel, Django or Rails developer - a PHP application framework with a content model, permissions, templates and a server built in - which parts feel…
-
Extension points: handlers, INI registration and overrides Updated Markdown page
Where framework developers register services, tags, listeners and plugins, Exponential registers extension points in INI settings, directories and designs - the nine registration mechanisms, a map of the most used…
-
Getting data into templates: fetch functions and operators Updated Markdown page
Where a framework passes view models from the controller, Exponential templates can also pull data themselves - fetch functions declared in function_definition.php, template operators for formatting, and variables set…
-
Forms and CSRF protection Updated Markdown page
How forms work in Exponential for developers used to form components, form requests and CSRF middleware - templates that write the form, module actions that read it, eZHTTPTool for input, ezformtoken's automatic token…
-
Glossary for web framework developers Updated Markdown page
The Exponential terms a framework developer meets, in alphabetical order, each with a one-line definition, the nearest framework word and the page that explains it - from action and attribute to workflow and wash.
-
Headless and decoupled front ends Updated Markdown page
Using Exponential as the content back end of a front end written in another framework - Next.js, Nuxt, a Laravel or Django site, a mobile app - what stays in Exponential, which API to read, rich text and images…
-
HTTP caching and reverse proxies Updated Markdown page
HTTP-level caching in Exponential for developers who know Symfony's HttpCache, Varnish setups, Laravel response caching or Django's cache middleware - page headers for anonymous visitors from settings, the role-aware…
-
Translations, locales and right-to-left Updated Markdown page
Internationalization in Exponential for developers used to Symfony Translation, Laravel's lang files, gettext in Django and Rails I18n - interface strings in Qt Linguist .ts catalogues, the i18n operator and…
-
Middleware: request rules, input and output listeners Updated Markdown page
What takes the place of middleware, before and after filters and request listeners in Exponential - request rules that allow, deny, redirect, rewrite or log after URL translation and policies, the request/input and…
-
Migrations and seed data: .dba schema files and packages Updated Markdown page
What replaces migration classes, seeders and fixtures in Exponential - database-neutral .dba schema files, ezsqldumpschema and ezsqlinsertschema, an idempotent install command, upgrade steps you ship, db_data.dba seed…
-
Mixing Exponential and a framework Updated Markdown page
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…
-
ORM and active record: eZPersistentObject Updated Markdown page
The Exponential answer to Eloquent, Doctrine, the Django ORM and ActiveRecord for your own tables - eZPersistentObject with a definition() array, fetchObject, fetchObjectList, count, store and remove, function…
-
Packages: extensions, Composer and bundles Updated Markdown page
The extension is Exponential's unit of code, like a Symfony bundle, a Laravel package, a Django app or a Rails engine - its directory layout, metadata, activation globally or per siteaccess, loading order, installing it…
-
Ten pitfalls for framework developers Updated Markdown page
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…