Skip to content
Snippets Groups Projects
  • Helmut Hummel's avatar
    [FEATURE] Consider all Composer installed extensions as active · 6cfc1a10
    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: 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>
    6cfc1a10