- 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…
- Add a custom locale for a minority language Task for administrators: add a language that has no locale file yet by writing share/locale/<code>.ini from a related locale, adding it as a Custom content language, and having a speaker check it.
- Caches and autoloads after building What a bundle build and an update must refresh - the autoload arrays (ezpgenerateautoloads.php -e, -k, -o, .autoloadignore), the caches (ezcache.php --clear-tag, --clear-id, --clear-all, cache.php), Velocity's workers…
- Classic XML and JSON packages The two formats an Exponential package can be stored in - classic package.xml and JSON package.json - what differs (checksums, file names, schema), when JSON helps a designer, and how to convert between them.
- Content modeling for apps The landing page of the content modeling pages for app developers - why the content classes, ids, languages and rich text of an Exponential site shape every screen of an app, and what to agree with the site team before…
- Extending Exponential Intelligence Extend expai from your own extension - a field action by settings, a tool the assistant can call (expAiTool), a provider for another AI service (expAiProvider), panel sections, JavaScript hooks and the registries the…
- ezjscore operators in depth Every operator of the ezjscore extension - the packer operators ezscript, ezscript_require, ezscript_load, ezscriptfiles, ezcss, ezcss_require, ezcss_load, ezcssfiles, the encoders json_encode, xml_encode, node_encode…
- Fetch basics How templates read data with fetch( module, function, parameters ): the modules with fetch functions, the most used content and user fetches, parameters as a hash, what comes back, and where each module's functions are…
- Find a node ID Menus, layouts and templates name pages by their node ID (location ID). Where the administration shows it, how to tell it from the object ID, and how to look a page up by ID, path or URL.
- List known vulnerabilities with composer audit Step by step - check the Composer dependencies locked for your Exponential installation against known vulnerability advisories with composer audit and see newer releases with composer outdated, because the project's CI…
- Observability: logs, debug bar and audit trail What an Exponential installation tells you about itself and where - the kernel logs and their rotation, the request logs 404.log and security.log, the log viewer and exp:logs, error references, the debug bar, the…
- Profiling PHP code Measuring and speeding up PHP code in Exponential - exp:benchmark for pages, kernel probes and micro benchmarks, eZDebug accumulators around your own code, the debug bar's SQL and memory figures, the OPcache profile…
- Task: build a small CRUD module step by step A hands-on task for framework developers - an extension with its own table, a persistent object model, a list view and an edit form with actions, validation, the CSRF token, a policy function, templates and a deploy…
- Template principles: page layout, content views, attributes How a page is assembled from templates, from pagelayout.tpl down to a single attribute; view modes, your own view, a print layout, and where styles and images go.
- The template compiler How eZTemplateCompiler turns a parsed template into PHP - the pipeline (node transformation, static optimizations, combining, PHP generation), the compiled file name and folder, the operator and function hints that let…
- Upgrades without breaking integrations Keeping integrations working through Exponential, extension and PHP upgrades - what tends to change under an integration, reading the behavior change notes, pinning versions with Composer, a rehearsal on a copy…
- Building an integration as an extension Packaging an integration as an Exponential extension - the directory layout of a typical integration, settings with secrets kept in settings/override, classes, commands, cronjob parts, workflow events, schema, tests…
- Content classes for apps Map Exponential content classes to app screens - finding the classes and fields a folder holds, reading class definitions with expclass services, classIdentifier as the switch for cells and views, handling unknown…
- Deploying a change How a PHP, settings, template or stylesheet change reaches every runtime that serves an Exponential site - the steps of exp:velocity deploy and why their order matters, PHP-FPM reloads and OPcache, Velocity restarts…
- ezwebin operators The six operators of the ezwebin extension - ezpagedata, ezpagedata_set, ezpagedata_append, ezarchive, ezkeywordlist and eztagcloud - with their parameters, what ezpagedata computes for a pagelayout, the database…
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