Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Adding and removing extensions in a bundle

How a bundle adds an extension (Composer, autoloads, caches, ActiveExtensions or the site package), how it leaves a required one out, the loading order, extension exports and their secret check, and a checklist for…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/bundlers/adding-and-removing-extensions.md

On this page

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

  1. Add an extension
  2. Activate it
  3. Leave one out
  4. Loading order
  5. Taking an extension out of an installation as a package
  6. 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-all

Source: 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:

WhereWhen 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.phpthe extension belongs to every site the bundle installs
[ExtensionSettings]
ActiveExtensions[]=ezflow

settings/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

  1. Remove it from ActiveExtensions and clear the caches.
  2. 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, Copyright and Info_url in ezinfo.php and extension.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.

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.

Something wrong on this page? Report an error

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