Composer, Contao Manager und allow-plugins

Mit Composer 2.2.0 wurde die Option allow-plugins als zusätzlicher Sicherheitsebene eingeführt. (Siehe auch https://getcomposer.org/doc/06-config.md#allow-plugins)

Contao und gewisse Erweiterungen verwenden ebenfalls Plugins für den Composer. Deswegen erscheint beim Aufruf von composer update bzw. composer install eine Abfrage, ob du die nötigen Plugins erlauben und deiner composer.json hinzufügen möchtest.

Mit der Bestätigung [y] wird das benötigte Plugin automatisch bei deiner composer.json hinzugefügt.

Beispiel:

contao-components/installer contains a Composer plugin which is currently not in your allow-plugins config. See https://getcomposer.org/allow-plugins
Do you trust "contao-components/installer" to execute code and wish to enable it now? (writes "allow-plugins" to composer.json) [y,n,d,?]

Contao Manager erlaubt automatisch alle Plugins

Da grundsätzlich jeder Entwickler einer Erweiterung Plugins nutzen kann, ist es schwierig eine zentrale Liste zu erstellen. Außerdem erscheint der Dialog zum Anpassen der composer.json nur auf der Konsole. Deswegen wurde die Konfiguration des Contao Managers so geändert, dass einfach alle Plugins erlaubt sind.

Siehe auch:

https://github.com/contao/contao-manager/blob/1.5.5/api/Config/ComposerConfig.php#L44

Konflikt zwischen Contao Manager und composer.json

Sobald in der composer.json Einträge zu allow-plugins vorhanden sind, greift diese Einstellung zuerst und die allow-all Einstellung des Contao Manager wird nicht mehr ausgeführt. Solltest du also Probleme bei der Installation von Erweiterungen oder Themes haben, dann bereinige deine composer.json und entferne die entsprechenden Einträge.

Tipp für Entwickler

Du kannst in deiner globalen Composer-Konfiguration die Option allow-plugins auf true setzen.

Dazu kannst du den folgenden Befehl ausführen:
composer config --global allow-plugins true

Alternativ kannst du auch manuell deine config.json in deinem Home-Verzeichnis anpassen. Für Mac-User wäre das:

/Users/USERNAME/.composer/config.json

{
"config": {
"allow-plugins": true}
}

Zuletzt aktualisiert am 21.03.2023 von Christian Feneberg.

Zurück