- Class naming and the exp prefix How to name PHP classes, files, functions, settings and tables in Exponential - your own prefix, exp for code contributed to the project, sevenx for 7x, why kernel eZ identifiers are never renamed, file names…
- Autoloads and class maps How Exponential finds PHP classes - the generated class maps for the kernel, the extensions, kernel overrides and tests, every option of bin/php/ezpgenerateautoloads.php, .autoloadignore, Composer's autoloader beside…
- Reading settings with eZINI The eZINI API for PHP developers - instance(), variable(), hasVariable(), variableArray(), group() and hasGroup(), the order of the settings layers, environment variants, arrays and empty resets, defaults for missing…
- SQL with eZDB, safely Writing SQL in Exponential with eZDB - instance(), query() and arrayQuery() with limit and offset, escapeString() for strings and (int) casts for numbers, generateSQLINStatement(), transactions with begin(), commit()…
- Code for every supported database Writing PHP and SQL that works on all six databases Exponential supports - SQLite 3 (the default), PostgreSQL, MongoDB, MariaDB, Oracle and MySQL - the driver classes, the portable helpers of eZDBInterface, schema files…
- Persistent object definitions in depth eZPersistentObject for PHP developers - every key of definition(), the field forms, the condition syntax of fetchObjectList() with operators, ranges and IN lists, sorting, limits and custom fields, store() and sync()…
- Write your first module view 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…
- Module views as classes How module views, commands and cronjob parts are written as classes since Exponential 6.0.15 - the Runnable hierarchy, the one-line entry files, the scope a view receives, services shared by views and commands, the…
- Write a console command 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 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…
- Plain CLI scripts with eZScript and ezexec The classic way to write a command line script with eZScript and eZCLI, which still works and which you will meet in older extensions - instance(), startup(), getOptions(), initialize(), shutdown() - plus running…
- Write a fetch function 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 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 datatype 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 workflow event type 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…
- Events, listeners and filters The kernel's event hub ezpEvent for PHP developers - notify and filter events, registering listeners in site.ini [Event] and [RunnableSettings] or with attach(), the events the kernel sends, writing a filter that…
- Extension points from PHP Where PHP code plugs into Exponential without editing the kernel - the registration mechanisms (directory, handler, autoload, file, design, ini, registry, filter, override), the extension points a PHP developer uses…
- ezjscore JSON endpoints in PHP Writing ezjscore server functions in PHP - the [ezjscServer_<name>] block, the static method that receives the arguments array, the answer envelope, permissions with Functions[] and RequirePolicy, POST writes with the…
- REST and remote services from PHP The HTTP APIs of Exponential from the PHP side - the REST kernel behind index_rest.php, rest.ini, providers implementing ezpRestProviderInterface with routes and ezpRestMvcController controllers, authentication with…
- Security in PHP code The security rules for PHP code in Exponential in one place - validate input, cast numbers, escape SQL and output by context, protect POSTs with the form token, check permissions in every entry point, redirect safely…
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