Recent changes
Wednesday November 04 2026
-
The debug bar for PHP developers Updated Markdown page
Using the Exp Debug bar as a PHP developer - the tabs (Messages, Settings, Cache, Timing, SQL, Templates, Included files, Memory, Rendering, User, Server), the summary thresholds, changing debug settings with undo, and…
-
The engine archive (phar) for PHP developers Updated Markdown page
What the optional engine archive dist/engine.phar means for PHP code - which directories it holds, how it is switched on, why code must never compute the installation root from __DIR__, how rebuilds work and refuse…
-
The kernel service container Updated Markdown page
How PHP code asks the kernel for shared objects by name (expKernelServices::get()), how to define a service in kernelservices.ini with a class or factory, arguments, a scope and tags, what worker, request and prototype…
-
Validating input and casting Updated Markdown page
How PHP code in Exponential turns untrusted input into safe values - reading through eZHTTPTool and $Params, (int) and (float) casts with ranges, allow lists with strict in_array, string length and character rules…
-
Velocity persistent workers for PHP developers Updated Markdown page
What changes for PHP code when Exponential runs under Velocity, the recommended application server - workers that boot once and serve many requests, the warm-up, what the kernel resets between requests, per-request…
-
Why the code has no type declarations Updated Markdown page
An explanation of one rule that surprises PHP developers - Exponential code is written without scalar, return and property types and without strict_types - what is allowed instead, how types are documented and checked…
-
Write a console command Updated Markdown page
A task guide for a command line tool in an extension - the command class extending Exponential\Runnable\Command, the entry file, options and help, siteaccess and database, output and exit codes, the @description tag…
-
Write a cronjob part Updated Markdown page
A task guide for scheduled work in an extension - the cronjob class extending Exponential\Runnable\CronjobPart, the entry file in cronjobs/, the [CronjobPart-name] block in cronjob.ini, running it with runcronjobs.php…
-
Write a datatype Updated Markdown page
The PHP side of a custom datatype - the eZDataType methods grouped by when the kernel calls them, registration with eZDataType::register(), storage in data_text, data_int and data_float or a table of your own, string…
-
Write a fetch function Updated Markdown page
A task guide for giving templates data through fetch( 'module', 'function', hash( ... ) ) - the function_definition.php entry, the static method and its result array, parameters, errors, permissions and limits, and how…
-
Write a template operator in PHP Updated Markdown page
A task guide for a template operator written in PHP - the eztemplateautoload.php registration, the operator class with operatorList(), namedParameterPerOperator(), namedParameterList() and modify(), input and output…
-
Write a workflow event type Updated Markdown page
The PHP side of a workflow event type - the class extending eZWorkflowEventType, registerEventType(), setTriggerTypes(), execute() and its statuses, the process parameters, settings per event, deferring to cron, and…
-
Write your first module view Updated Markdown page
A step-by-step task guide - create an extension with a module, declare a view and a policy function in module.php, implement the view as a class, render a template, give a role the policy, regenerate autoloads and open…
-
Writing code that runs on PHP 8.0 Updated Markdown page
The rules for PHP code that must run on PHP 8.0, the stock PHP of RHEL 9 (and, without support, on 7.4 for the kernel) - the syntax you may not use, how lib/phpcompat.php and function_exists() guards work, arguments…
-
Writing migrations in PHP Updated Markdown page
A hands-on page for PHP developers - the migration class and its namespace, the context API, references between migrations, exceptions and transactions per engine, the kernel APIs a migration uses, one complete example…
-
A release calendar Updated Markdown page
How a show plans and tracks its releases with what Exponential offers - drafts and pending versions, scheduled publishing, object states as production stages, lists of what is coming - and a weekly routine and calendar…
-
Accessible players and pages Updated Markdown page
How to make episode pages and players usable for everyone - controls on and autoplay off in the media field, what the HTML5 player template gives you, embedded players, headings, link texts with format and size, images…
-
Approvals before release Updated Markdown page
How a show makes episodes wait for an editor's or a legal review before they go out - the Approve workflow event and its fields, combining approval with a scheduled release, what producers and approvers see, and lighter…
-
Artwork and episode images Updated Markdown page
Where show artwork and episode images go in Exponential - the feed's Artwork address written as itunes:image, the RSS 2.0 image of other exports, image fields of episode classes and their variations on the site - and…
-
Building a podcast feed Updated Markdown page
Step by step - create an RSS export in the format Apple Podcasts (RSS 2.0 + iTunes), fill in the channel fields, add the show folder as a source with the episode class, map title, description and enclosure, make it…