Recent changes
Wednesday November 04 2026
-
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…
-
Queries: content fetches, eZDB and SQL Updated Markdown page
How to query data in Exponential when you are used to a query builder - content fetches with class, attribute and depth filters for content, condition arrays for persistent objects, eZDB arrayQuery and escaping for your…
-
Queues and background jobs Updated Markdown page
Background work in Exponential for developers used to Symfony Messenger, Laravel queues, Celery, Sidekiq or Spring's @Async - the expqueue job queue with handlers, retries, idempotency keys and workers, content jobs for…
-
Responses, redirects, errors and JSON Updated Markdown page
How a module view answers - the $Result array instead of a Response object, the pagelayout around it, redirects with redirectTo and safe redirect targets, error pages with handleError and eZError codes, JSON and other…
-
REST and JSON APIs Updated Markdown page
The API layers of Exponential for developers who build APIs with API Platform, Laravel API resources, Django REST framework or Spring controllers - the REST content API at v1 and v2 with API keys and OAuth2, your own…
-
Routing: modules, views and parameters Updated Markdown page
How Exponential maps an address to code - the module/view convention instead of a route table, ordered and unordered parameters, registering a module, generating URLs with ezurl and eZURI::build, HTTP methods and…
-
Scheduled tasks: cronjobs Updated Markdown page
The Exponential counterpart of Laravel's scheduler, Symfony Scheduler, Celery beat, whenever and Spring's @Scheduled - cronjob parts in cronjob.ini run by runcronjobs.php from the system crontab, the shipped parts the…
-
Servers and deployment: Apache and PHP-FPM, Velocity, FrankenPHP Updated Markdown page
How Exponential is served and deployed, for developers who know PHP-FPM behind nginx, Laravel Octane, RoadRunner, FrankenPHP worker mode, Gunicorn or Puma - the three ways to serve it, the persistent-worker rules, the…
-
Siteaccesses: matching a request to a site Updated Markdown page
The siteaccess is the concept framework developers most often miss - a named configuration selected per request by URI, host, port or server variable, before routing - how matching works, what a siteaccess changes, how…
-
Static publishing compared with static site generators Updated Markdown page
An honest comparison of Exponential's static publishing with Jekyll, Hugo, Eleventy, Astro and headless setups - where a CMS that publishes static copies wins, and where a generator is the better tool.
-
The Symfony legacy bridge for framework developers Updated Markdown page
How Exponential 6 and Symfony run as one application - the legacy bridge bundle that loads the Exponential 6 kernel inside a Symfony platform installation, what each side handles, the legacy_admin siteaccess, the…
-
Template resolution: designs and overrides Updated Markdown page
How Exponential decides which template file renders a view - the design chain of a siteaccess, extension designs, the design: resource, override.ini rules matched by class, node, section or view mode - compared with…
-
The view layer: the template language beside Twig and Blade Updated Markdown page
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…
-
Testing: PHPUnit, database tests and checks Updated Markdown page
How to test an application on Exponential for developers used to WebTestCase, Laravel's HTTP tests, Django's test client or Rails system tests - PHPUnit without a database for services, tests against a throwaway…
-
The content model for ORM users Updated Markdown page
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 Exponential Platform products Updated Markdown page
The Symfony-based side of the Exponential family, for framework developers choosing a stack - Exponential Platform 3.2.9, Legacy, Nexus, DXP and the Nexus starter, which ones include the Exponential 6 kernel, which ship…
-
The request lifecycle Updated Markdown page
What happens to an HTTP request in Exponential, step by step - index.php, the kernel, siteaccess matching, settings, session, URL alias and wildcard translation, request rules, the module and policy checks, the view…
-
Pretty URLs: URL aliases and URL wildcards Updated Markdown page
How Exponential turns readable addresses into module addresses - automatic URL aliases for content nodes, global aliases for module views, wildcard patterns for redirects and rewrites, history redirects when content…
-
Validation: input, datatypes and escaping Updated Markdown page
Where validation happens in Exponential when there is no validator component - content is validated by its datatypes when editors save, your own forms and parameters are validated in your view or service, and output is…