Part 1, chapter 8. The kernel of Exponential does not come alone: its composer.json requires 66 packages of the
se7enxweb organization, 65 extensions and the Composer installer that puts extensions into extension/. It
suggests a dozen more. This chapter lists them by what they do. For a developer they are two things at once: building
blocks you can use, and working, maintained examples of every kind of extension this book teaches.
The list was taken from the kernel's composer.json on the day this page was written. To see the current one:
grep -o '"se7enxweb/[^"]*"' composer.json | sort -u
Repositories are on GitHub under github.com/se7enxweb, packages on Packagist under
packagist.org/packages/se7enxweb. The license column is what GitHub
detects in each repository; where it says GPL-2.0, read the extension's own LICENSE and ezinfo.php for "or any
later version". Pages in the documentation exist for many of them; the column "Doc" links them.
Page building: Exponential Layouts #
A visual page builder ported to Exponential from the upstream layouts packages. Thirteen packages that show how a large
feature is split into a domain core, an API, a user interface and pluggable query handlers.
| Package | What it does | License | Doc |
|---|
| explayouts | Layouts, zones, blocks and rules: storage, resolver, renderer | GPL-2.0 | |
| explayouts_core | Core domain layer (layout, rule, collection, block and zone services) | GPL-2.0 | |
| explayouts_api | PHP API adapters between content and Layouts | GPL-2.0 | |
| explayouts_standard | Standard block handlers (title, text, button, image ...) | GPL-2.0 | |
| explayouts_ui | Administration user interface for Layouts | GPL-2.0 | page |
| explayouts_ui_api | JSON API and single page editor shell | GPL-2.0 | page |
| explayouts_site_api | Bridge between Layouts and the site API | GPL-2.0 | |
| explayouts_relation_list_query | Relation list collection query handler | GPL-2.0 | |
| explayouts_tags_query | Tags collection query handler | GPL-2.0 | |
| explayouts_content_browser | Content browser back end | GPL-2.0 | |
| explayouts_content_browser_core | Content browser core services | GPL-2.0 | |
| explayouts_content_browser_ui | Server-rendered content browser user interface | GPL-2.0 | |
| expquery_translator | Search query parser and node filter, ported from a query translator library | GPL-2.0 | |
Site framework #
| Package | What it does | License | Doc |
|---|
| expsite_api | Simple PHP services over the content model for site code | GPL-2.0 | |
| expsite_core | Site helpers: breadcrumb path, redirect, mail | GPL-2.0 | |
| expsite_app | A holder for one project's design overrides and customizations | GPL-2.0 | |
| expsite_data_media | Site data for the media site | GPL-2.0 | |
| expsite_installer | One-command site bootstrap | GPL-2.0 | |
Administration and editing #
| Package | What it does | License | Doc |
|---|
| exp_adminui | An alternative administration interface (AdminUI) | GPL-2.0 | feature |
| expui | The JavaScript API of the admin: jQuery 4 and the Exp namespace, replacing YUI | GPL-2.0 | |
| ezautosave | Saves drafts while editors type | GPL-2.0-or-later | page |
| ezie | Image editor inside the editing interface | GPL-2.0-or-later | page |
| ezmultiupload | Upload many files at once by drag and drop | GPL-2.0-or-later | page |
| ezwt | The website toolbar: edit from the public site | GPL-2.0-or-later | page |
| expchangeclass | Change the content class of an object or a whole class | GPL-2.0 | |
| ezownerchange | Reassign the owner of content | GPL-2.0 | |
| powercontent | Content creation tools for templates and code | GPL-2.0 | |
| sevenx_dse | Database source editor in the administration | GPL-2.0 | page |
| git_manager | Git checkouts, branches and backups from the browser | GPL-2.0 | page |
| ezupdate | Package manager: Composer, Packagist and package servers in the admin | GPL-2.0 | page |
New kinds of fields (datatypes) #
Users and security #
Search, SEO and statistics #
Import, export and integration #
| Package | What it does | License | Doc |
|---|
| bccie | Export of collected information | GPL-2.0 | page |
| ezodf | Import and export of office documents | GPL-2.0-or-later | page |
| xrowextract | Content import and export (CSV, XML, JSON, packages) | GPL-2.0 | page |
| syndication | Content synchronization between installations | GPL-2.0 | page |
| ezprestapi | REST API v2 content provider | GPL-2.0 | page |
| cjw_tmv | Tools for an external web service integration | GPL-2.0 | |
| expqueue | A database-backed job queue | GPL-2.0-or-later | page |
Communication, commerce, intelligence, databases #
| Package | What it does | License | Doc |
|---|
| cjw_newsletter | Newsletters | GPL-2.0 | page |
| ezpaypal | PayPal payment gateway for the shop | GPL-2.0 | page |
| expai | Exponential Intelligence: AI-assisted content creation | GPL-2.0-or-later | page |
| ezoracle | Oracle database driver | GPL-2.0-or-later | |
| Package | What it does | License | Doc |
|---|
| owsimpleoperator | Write template operators as plain methods; expose permitted PHP functions | GPL-3.0-or-later | page |
| swark | Many template operators and a few workflow events | GPL-2.0-or-later | page |
| ezurlmultisite | URL operators for links across sites | GPL-2.0 | |
Designs and site packages #
The installer #
| Package | What it does |
|---|
| exponential-legacy-installer | The Composer installer for packages of type ezpublish-legacy-extension: it puts each one into extension/<name> |
Suggested, not required #
The kernel's composer.json also suggests (installs only when you ask) these extensions, among others:
ezfind (Solr search), ezauthorize (payment gateway), ezsi (edge side includes), ezscriptmonitor (long
running scripts), bcurlaliaswithdash, sevenx_valkey and sevenx_valkey_cache (Valkey and Redis), adminaid,
ezpm (private messages). Read the suggest block of composer.json for the current list and one line on each.
Extensions that ship inside the kernel's own repository are not in either list: ezjscore, ezoe, ezformtoken
and expservices. They are always there.
How to use this catalogue as a developer #
| You want to learn | Read |
|---|
| A small template operator | str_replace (in the kernel tree), then owsimpleoperator |
| A datatype | birthday (small), then eztags (large) |
| A module with views and policies | ezownerchange, expchangeclass |
| Workflow events | swark (eventtypes/event/) |
| ezjscore ajax functions | ezstarrating, ezautosave |
| A design extension | sevenx_themes_simple |
| A large feature split into packages | the Layouts packages |
| Modern JavaScript without inline scripts | expui |
Learning from an extension, step by step takes two of them apart.
Related pages #
Become an Exponential Partner. Partners share their information, provide funding, contribute back and
develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for
mid-2027: please become a partner today to speed up our growth rate and land new features faster. Start with
Partners: start here and How to apply.