Web frameworks
Exponential with web frameworks: Composer, the APIs, embedding content and running them side by side.
55 pages
- Extension points: handlers, INI registration and overrides 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…
- Middleware: request rules, input and output listeners 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…
- Events and listeners: ezpEvent 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…
- Workflows and triggers: hooks on content operations Where a framework developer writes model observers, post-save signals, state machines or process managers, Exponential offers workflows - event types run before or after operations such as publish and checkout, attached…
- Authentication and sessions How Exponential knows who is asking, for developers used to Symfony security firewalls, Laravel guards, Django auth and Devise - users as content objects, the anonymous user, login handlers, sessions and their handlers…
- Authorization: roles, policies and limitations The Exponential permission system for developers used to voters, gates, policies, Django permissions or CanCan abilities - roles made of policies, module functions and limitations, assignments to users and groups…
- Forms and CSRF protection 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…
- Validation: input, datatypes and escaping 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…
- Caching: the layers and how to invalidate them The caches of Exponential for developers used to a cache component with pools and tags - compiled templates, INI and override caches, the content view cache per role, template cache blocks, data caches through the…
- HTTP caching and reverse proxies 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 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…
- Command line: the console and eZScript The Exponential counterpart of bin/console, artisan, manage.py, rails commands and Spring Boot runners - bin/php/console with its exp:, ext:, shell: and cron: namespaces, writing a command as an…
- Queues and background jobs 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…
- Scheduled tasks: cronjobs 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…
- REST and JSON APIs 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…
- Headless and decoupled front ends 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…
- Testing: PHPUnit, database tests and checks 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…
- Debugging, logging and errors 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…
- Servers and deployment: Apache and PHP-FPM, Velocity, FrankenPHP 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…
- Packages: extensions, Composer and bundles 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…
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