Adding and removing extensions in a bundle
This page is for bundlers who change the set of extensions Exponential ships with. The base procedure is on The default extension distribution; this page adds what a bundle has to think about.
Contents
- Add an extension
- Activate it
- Leave one out
- Loading order
- Taking an extension out of an installation as a package
- Checklist for every extension you add
Add an extension
composer require se7enxweb/ezflow
php bin/php/ezpgenerateautoloads.php -e
php bin/php/ezcache.php --clear-allSource: Add an extension. Use the package and version your bundle really needs; the example is the one on that page.
Activate it
Two places can activate an extension:
| Where | When to use it |
|---|---|
Your site package's settings (it writes ActiveExtensions[] during the install) | the extension belongs to the site you install; "An installation made from a site package activates the extensions of its package for you" |
settings/override/site.ini.append.php | the extension belongs to every site the bundle installs |
[ExtensionSettings]
ActiveExtensions[]=ezflowsettings/override/ is written by the installer and holds the database credentials afterwards; a bundle that ships
settings must ship them as part of the site package or apply them after the install, not ship a filled
settings/override/ (Security defaults of a bundle).
Leave one out
- Remove it from
ActiveExtensionsand clear the caches. - Run
composer remove se7enxweb/<name>.
"If you installed with Git checkouts of the extensions instead of Composer, do not run composer update: it replaces
the checkouts" (Leave one out).
Before you leave out a required extension, check that nothing else needs it: extension.xml names dependencies in
<requires> (Extension metadata), and site packages may activate
it. Record the reason in your release notes; recipients will ask.
Loading order
The order of ActiveExtensions decides which extension's settings and templates win. Setup > Extensions shows the
loading order by default and applies changes after a review
(Extension list, The Extensions page).
Put your theme and override extensions where they are meant to win, and test the order you ship.
Taking an extension out of an installation as a package
Setup > Extensions can download an extension as tar.gz, .zip, tar.bz2 or .ezpkg, and ezpm.php add can pack
one. Exporting "is now off by default": the extension must be listed in package.ini [ExtensionExportSettings] AllowedExtensions[] (or *), and the role needs the policy package/export_extension. "An extension that holds a
secret value or key material is not packed" (Extension list,
The secret check). For a bundle, prefer building from your
repositories over exporting from a running site.
Checklist for every extension you add
- To do: Its license is known and compatible with distributing it next to GPL code (Third-party components).
- To do: It states
Version,License,CopyrightandInfo_urlinezinfo.phpandextension.xml, so the Info > About page shows it correctly (About and Copyright pages). - To do: It runs on every PHP version your bundle supports.
- To do: It is pinned (tag, lock file).
- To do: You know who maintains it and where its issues go (Support boundaries).
- To do: It holds no secrets, keys or customer data.
Related pages
- Exponential 6 as a base
- Extension bundles
- Chapter 10.13 Extension management
- Free documentation: this page is free to copy, translate and improve under the GNU FDL 1.3.
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.