- Forking a site package Start your own site package from a working one - which package to copy, how the source repositories are laid out, what to rename in package.xml and the installer files, and which names must be unique so an installation…
- Changing the installer script How a site package's PHP installer is wired into CreateSites - the settings files, the eZSite* hook functions and when they run, the installer class and its post-install steps, the extensions and tables it sets up - and…
- Changing classes and content Where a site package's content classes and demo content live, how their XML files are listed as install items, the two ways to change them (edit the files, or build on a test site and export), why remote IDs must stay…
- Rebuilding with build.sh How the 7x package archives are built from the source repository - packages/build.sh and bin/pack.sh line by line, what they leave out, where the .ezpkg files land - and how to check an archive before it is published.
- AI and agent checklists The checklists of the AI, agents and agentic section - before switching on Exponential Intelligence, before connecting an agent, and reviewing AI drafts - each with a link to the page that explains every item.
- An upgrade test environment Set up a place to test a theme against new Exponential and PHP versions - a separate installation installed with Composer, demo content, the theme as a Git checkout, and a way to reset it - never a live site.
- Audit integrity and verification For public bodies that rely on the audit trail as evidence - how Exponential's hash chains, signed checkpoints and signed archive manifests make tampering visible, how to verify them, what each finding means, and what…
- Autoloads and class naming 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…
- Broken deploy rollback Runbook for a site that broke right after a deployment - confirm the change is the cause, roll back code and settings, decide whether the database must be restored, redeploy in the right order, and record it for the…
- Creating packages with the wizard What the package wizard in the administration can make for your site package (content classes, content, extensions, site styles), what it cannot make (the site package itself), and how to move its output into your…
- Documentation sources: where to read about Exponential Every documentation source the Documentation page of exponential.earth lists, with what each covers, how current it is and how to use it next to this help - the documentation website, the free books, the articles on…
- Dynamic properties PHP 8.2 deprecates properties a class does not declare. How the kernel handles them for persistent objects, how to find them in your own classes, and when to declare, use an array, or allow them.
- ezjscore server functions for integrations When a small JSON endpoint of your own is the right integration surface, how to write one as an ezjscore server function, how to protect it with the ezjscore/call policy and the form token, and when to use expservices…
- eZUser and access checks The current user and access checks from PHP and templates - eZUser::currentUser(), isAnonymous(), isLoggedIn(), hasAccessTo() and its accessWord yes, no or limited, object-level checks, and the user fetch functions.
- filelist.md5 and the upgrade check Extensions that ship share/filelist.md5 are read by the admin's file consistency check; every release must refresh the checksums of changed files, or the check lists them as modified. How to keep it right.
- Finding ideas on GitHub Search GitHub for extensions and working code: the se7enxweb organization, code search for kernel class names, history and issues, and whether a project is alive.
- Integration and API requirements Requirement wording for how a public CMS connects to other systems - content API, authentication, directory sign-in, feeds, webhooks, mail - with Exponential's documented protocols and their status from the APIs and…
- Keeping public addresses working after an exit Why the public addresses of a government site must keep working after a change of system, where Exponential keeps every address (main aliases in the site archive, other aliases and wildcards in two tables), how to build…
- Learning Exponential: the chapters of the Learning book, brought up to date Help pages adapted from the free book Learning eZ publish, chapter by chapter, with every step, setting and label checked against Exponential 6. Start here for the reading order.
- Lock files and reproducible builds Why a bundle must carry its own composer.lock (the kernel repository has none), how to build the same bundle twice, what else must be pinned besides Composer, and a build record to keep with every release.
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