Recent changes
Wednesday November 04 2026
-
What the Exponential Community is Updated Markdown page
Who belongs to the Exponential Community, what its members do, the organizations inside it, what the community is not, and what the sources do not say about it.
-
Your first week in the community Updated Markdown page
Seven days, one small step a day - from reading the code of conduct to making your first contribution - for anyone who is new to the Exponential Community.
-
Contribute extensions back: share your work with everyone Updated Markdown page
Why and how to give the extensions you build back to the Exponential project so everyone can use them; what the GNU GPL really requires when you distribute an extension (and what it does not require for a site you only…
-
Access control in code Updated Markdown page
Apply Exponential's permissions in every layer of an application - the current user, policy checks with limitations, content-level checks, running background work as the right user, integration users, and recording…
-
Application creators: frequently asked questions Updated Markdown page
Short answers to the questions application creators ask most - classes not found, changes that do not show under Velocity, permissions, settings, forms refused, JSON, cron, queues, tests and where to ask.
-
The application creator's reading path Updated Markdown page
The pages of the application creators' section in the order an application is built - six stages from the first extension to a scaled production system - with what you should be able to do after each stage.
-
Application creators: start here Updated Markdown page
The landing page for application creators - what Exponential gives an application, a first-week plan, and every page of this section grouped by task, from the first extension to APIs, AI, queues, testing, deployment…
-
Architecture for application creators Updated Markdown page
How a request flows through Exponential - front controller, siteaccess, module and view, templates and pagelayout - and where kernel, extensions, settings, designs and var/ fit, so you know where your code goes.
-
Autoloads and class naming Updated Markdown page
How Exponential finds your classes - the generated autoload arrays, when to regenerate them, naming new classes with the exp prefix, namespaced runnable classes, Composer autoloading, and the errors a stale autoload…
-
Background work: queues, cronjobs and content jobs Updated Markdown page
Choose where an application's slow or periodic work runs - in the request, in a workflow, a cronjob part, an expqueue job or a kernel content job - with a decision table and patterns for imports, notifications and…
-
Caching in applications Updated Markdown page
Cache an application's work correctly - which kernel caches exist, cache blocks for template output, caching computed data in PHP with eZClusterFileHandler and expiry, clearing on change, caches under Velocity's…
-
Continuous integration for extensions Updated Markdown page
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…
-
CLI scripts with eZScript Updated Markdown page
Write command line tools for an application - the class-based Command with script(), startup() and options, the classic eZScript pattern, eZCLI output, siteaccess and user, exit codes, dry runs and safety.
-
Clustering and shared storage Updated Markdown page
Run Exponential on several web servers - the cluster file handlers (eZFSFileHandler, eZDFSFileHandler) in file.ini, the DFS mount and its database, sessions, cron and queue workers, and how application code stays…
-
Composer packages and Packagist Updated Markdown page
Publish an extension as a Composer package - the package name and type, version constraints, tags, Packagist and its webhook, installing a package into an installation, and updating safely.
-
Console commands Updated Markdown page
The bin/php/console entry point - command names and namespaces, extension commands found automatically, describing your own commands, options and exit codes, and the commands an application developer uses every day.
-
Content jobs Updated Markdown page
How the kernel runs large content operations in the background - removes, copies, moves, hides, sections, states, locations, package installs and audit exports - with their progress page, command, cronjob part, settings…
-
Content Security Policy for your code Updated Markdown page
Write templates and scripts that run under Exponential's Content Security Policy - no inline scripts, handlers or styles; page scripts as files, data-* attributes and JSON data blocks; adding sources; reading the CSP…
-
Creating and updating content in code Updated Markdown page
Create, update, move and remove content from PHP - eZContentFunctions::createAndPublishObject and updateAndPublishObject, fromString values, rich text, images, remote ids for idempotent imports, workflows and…
-
Cronjobs for applications Updated Markdown page
Run an application's periodic work with cronjob parts - how parts and scripts are defined in cronjob.ini, running them with runcronjobs.php and the console, the crontab, siteaccess flags, pausing, locks and monitoring…