Skip to content
Snippets Groups Projects
Commit 6cfc1a10 authored by Helmut Hummel's avatar Helmut Hummel
Browse files

[FEATURE] Consider all Composer installed extensions as active

The idea of this change is, that when using Composer,
all TYPO3 extensions, that are part of the Composer
installation, should be considered as active and there
is no need whatsoever to install code of an
extension with Composer (and making all its classes
available), but not wanting the extension to interact with
TYPO3 API.

Therefore with this change, all TYPO3 extensions installed
with Composer are considered to be active (and therefore can
and will interact with TYPO3 API).

Additionally, since the list of active extension is known
during Composer installation, a persistent artefact is
created at this point, which represents the final state
of TYPO3 extension packages for the PackageManager,
making both, the PackageStates.php file and the
PackageManager cache obsolete for Composer managed
TYPO3 installations.

Note any extension present in the typo3conf/ext folder,
but not installed by Composer, will still
be considered and marked as part of TYPO3 packages when
doing a "composer install". The only requirement here is,
that such extensions need a composer.json file nonetheless.
Note this behaviour is deprecated and will be removed
with TYPO3 12.

Additionally the extension manager UI is adapted to
not allow changing the active state of extensions anymore.
Respectively the commands "extension:activate" and
"extension:deactivate" are disabled in Composer managed
systems as well.

A new cli command "extension:setup" is introduced, which
supersedes both, the extension manager UI as well as the
activate/deactivate commands. It performs all steps that
were done before, except changing the active state of an
extension.

With cli command "extension:setup" ALL extensions are
set up in terms of database schema changes, static data
import, distribution files imports, etc.

Last but not least, any installed Composer package, that
defines an extra.typo3/cms section in their composer.json file,
but is not of type "typo3-cms-extension" at the same time,
will be considered for TYPO3 and will have full access
to TYPO3 API. It has to be noted though that such packages
can not deliver public resources. This remains exclusive for
TYPO3 extensions for now.

Releases: master
Resolves: #94996
Change-Id: I919873dd4ddd087c943f1289a12253c6acec7fa4
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69174


Tested-by: default avatarBenjamin Franzke <bfr@qbus.de>
Tested-by: default avatarJochen <rothjochen@gmail.com>
Tested-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
Tested-by: default avatarHelmut Hummel <typo3@helhum.io>
Tested-by: default avatarcore-ci <typo3@b13.com>
Reviewed-by: default avatarBenjamin Franzke <bfr@qbus.de>
Reviewed-by: default avatarJochen <rothjochen@gmail.com>
Reviewed-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: default avatarHelmut Hummel <typo3@helhum.io>
parent defa79fa
Branches
Tags
Showing
with 1033 additions and 91 deletions
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment