-
Helmut Hummel authored
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:
Benjamin Franzke <bfr@qbus.de> Tested-by:
Jochen <rothjochen@gmail.com> Tested-by:
Christian Kuhn <lolli@schwarzbu.ch> Tested-by:
Helmut Hummel <typo3@helhum.io> Tested-by:
core-ci <typo3@b13.com> Reviewed-by:
Benjamin Franzke <bfr@qbus.de> Reviewed-by:
Jochen <rothjochen@gmail.com> Reviewed-by:
Christian Kuhn <lolli@schwarzbu.ch> Reviewed-by:
Helmut Hummel <typo3@helhum.io>
6cfc1a10