Fehlermeldung HTML Minify Erweiterung / Uncaught PHP Exception / Composer

Hallo zusammen,
ich würde mich sehr über Tipps und Hilfe zu einem Problem freuen mit dem ich mich heute schon viel zu lange herumschlage. Ich möchte von den Friends of Shopware das HTML Minify Plugin installieren (HTML Minify plugin).

Ich nutze SW 6.6.9. Beim Versuch zu installieren erhalte ich die folgende Fehlermeldung, die ich nicht richtig deuten kann:

Uncaught PHP Exception Shopware\Core\Framework\Plugin\Exception\PluginComposerRequireException: „Could not execute „composer require“ for plugin „FroshPlatformHtmlMinify (frosh/platform-html-minify:2.1.0). Output: In Factory.php line 317: „./composer.json“ does not match the expected JSON schema: - require.composer/composer : NULL value found, but a string is required require [–dev] [–dry-run] [–prefer-source] [–prefer-dist] [–prefer-install PREFER-INSTALL] [–fixed] [–no-suggest] [–no-progress] [–no-update] [–no-install] [–no-audit] [–audit-format AUDIT-FORMAT] [–update-no-dev] [-w|–update-with-dependencies] [-W|–update-with-all-dependencies] [–with-dependencies] [–with-all-dependencies] [–ignore-platform-req IGNORE-PLATFORM-REQ] [–ignore-platform-reqs] [–prefer-stable] [–prefer-lowest] [-m|–minimal-changes] [–sort-packages] [-o|–optimize-autoloader] [-a|–classmap-authoritative] [–apcu-autoloader] [–apcu-autoloader-prefix APCU-AUTOLOADER-PREFIX] [–] […] " at CommandExecutor.php line 54 {„exception“:“[object] (Shopware\Core\Framework\Plugin\Exception\PluginComposerRequireException(code: 0): Could not execute "composer require" for plugin "FroshPlatformHtmlMinify (frosh/platform-html-minify:2.1.0). Output:\n\nIn Factory.php line 317:\n \n "./composer.json" does not match the expected JSON schema: \n - require.composer/composer : NULL value found, but a string is required \n \n\nrequire [–dev] [–dry-run] [–prefer-source] [–prefer-dist] [–prefer-install PREFER-INSTALL] [–fixed] [–no-suggest] [–no-progress] [–no-update] [–no-install] [–no-audit] [–audit-format AUDIT-FORMAT] [–update-no-dev] [-w|–update-with-dependencies] [-W|–update-with-all-dependencies] [–with-dependencies] [–with-all-dependencies] [–ignore-platform-req IGNORE-PLATFORM-REQ] [–ignore-platform-reqs] [–prefer-stable] [–prefer-lowest] [-m|–minimal-changes] [–sort-packages] [-o|–optimize-autoloader] [-a|–classmap-authoritative] [–apcu-autoloader] [–apcu-autoloader-prefix APCU-AUTOLOADER-PREFIX] [–] […]\n\n at /var/www/clients/client1/web2/web/vendor/shopware/core/Framework/Plugin/Composer/CommandExecutor.php:54)“}

Hostinganbieter ist Timmehosting.

Hat jemand von euch einen Tipp? Ich freue mich sehr auf euer Feedback.

Beste Grüße und vorab einen guten und gesunden Rutsch ins neue Jahr!

Niclas

Hallo,

in der composer.json Datei in Zeile 317 fehlt etwas:

Viele Grüße

Hi Scoopex.
vielen Dank für deine Hilfe.

Ich kann halt leider nicht zuordnen in welcher Datei genau der Fehler bestehen soll. die Composer.json im Hauptverzeichnis hat bspw. keine 317 Zeilen.

Ich wüsste aber auch nicht wo und welche Factory.php es sein soll - sofern dort line 317 gemeint ist.

Hättest du da weitere Ideen? Vielen Dank und viele Grüße!

Hi,

lt. Fehlermeldung solltest Du die composer.json mal prüfen.

Viele Grüße

Meine Vermutung wäre, dass sich die PHP Versionen auf der console von im Webserver unterscheiden?
Ansonsten würde ich mal versuchen die Installation auf der console zu machen. Bei timme gibt es ja einen SSH Zugang.

Hallo Scoopex,
hallo chamaw,

vielen Dank für eure Hilfe.

In der composer.json konnte ich tatsächlich nichts finden. Zumal auch eine line 317 nicht vorhanden war.

Tatsächlich gelang dann die Installation über die Konsole und Composer. Was genau der Grund ist, dass es dann dort gelang und anderweitig nicht, erklärt sich mir bisher nicht. Hättet ihr da eine Idee bzw. Vermutung?

Wünsche einen schönen Sonntag und guten Rutsch ins neue Jahr!

1 „Gefällt mir“

Laut Fehlermeldung entsteht eine Exception in der Factory.php line 317 weil das Schema der composer.json fehlerhaft ist.

Hier mal eine Original composer.json von Shopware 6.6.9.0:

{
    "license": "proprietary",
    "type": "project",
    "require": {
        "composer-runtime-api": "^2.0",
        "shopware/administration": "6.6.9.0",
        "shopware/conflicts": ">=0.3.0",
        "shopware/core": "6.6.9.0",
        "shopware/elasticsearch": "6.6.9.0",
        "shopware/storefront": "6.6.9.0",
        "symfony/flex": "~2"
    },
    "repositories": [
        {
            "type": "path",
            "url": "custom/plugins/*",
            "options": {
                "symlink": true
            }
        },
        {
            "type": "path",
            "url": "custom/plugins/*/packages/*",
            "options": {
                "symlink": true
            }
        },
        {
            "type": "path",
            "url": "custom/static-plugins/*",
            "options": {
                "symlink": true
            }
        }
    ],
    "prefer-stable": true,
    "config": {
        "allow-plugins": {
            "symfony/flex": true,
            "symfony/runtime": true
        },
        "optimize-autoloader": true,
        "sort-packages": true
    },
    "scripts": {
        "auto-scripts": {
            "assets:install": "symfony-cmd"
        },
        "post-install-cmd": [
            "@auto-scripts"
        ],
        "post-update-cmd": [
            "@auto-scripts"
        ]
    },
    "extra": {
        "symfony": {
            "allow-contrib": true,
            "endpoint": [
                "https://raw.githubusercontent.com/shopware/recipes/flex/main/index.json",
                "flex://defaults"
            ]
        }
    }
}

Eventuell hilft dir auch der folgende Dienst um die Syntax der JSON Datei zu prüfen: https://jsonlint.com/

Vielleicht lohnt es sich, die composer.json auf einen älteren Stand wiederherzustellen und dann das Plugin direkt über Github einzubinden:

composer require frosh/platform-html-minify

Wenn du das über den Shopware Store machen möchtest, musst du das vorher in deinen Shopware.com Account eingestellt werden. Dann würde das in etwa so aussehen:

composer require store.shopware.com/XXX

VG Rico von enerspace.de