- Web framework developers: start here Where developers who know Symfony, Laravel, Slim, CodeIgniter, Yii, CakePHP, Laminas, Django, Rails, Express or Spring start with Exponential - what it is in their terms, the first hour, a map of every page that…
- Exponential for web framework developers 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…
- Concept dictionary: framework terms in Exponential A lookup table from the words of Symfony, Laravel, Django, Rails, Express and Spring to the Exponential term, the class or setting that implements it, and the page that explains it - including the concepts that have no…
- Reading path for web framework developers The order in which to read this audience's pages - an orientation day, the request and its pieces, data, the cross-cutting concerns, operations, and the bridge to other frameworks - with time estimates and the pages…
- The request lifecycle 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…
- Siteaccesses: matching a request to a site 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…
- Routing: modules, views and parameters 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…
- Pretty URLs: URL aliases and URL wildcards 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…
- Controllers: module views 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…
- Responses, redirects, errors and JSON 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…
- 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…
- Template resolution: designs and overrides 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…
- Getting data into templates: fetch functions and operators 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…
- ORM and active record: eZPersistentObject 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…
- 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…
- Queries: content fetches, eZDB and SQL 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…
- Migrations and seed data: .dba schema files and packages 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…
- Configuration: INI files instead of YAML, PHP arrays or .env 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…
- Environments and secrets: EXP_ENV and settings/override 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…
- Dependency injection and services: what exists 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…
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