CE 6.4 & D3/Unzer

Hallo,

ich möchte in meinem Shop nun D3/Unzer nutzen. Aber hier habe ich Schwierigkeiten, diesen über composer mit ddev zu installieren. Meine PHP Version lautet 6.4

ddev composer require d3/unzer:"^6.2" --update-no-dev
./composer.json has been updated
Running composer update d3/unzer
Loading composer repositories with package information
Updating dependencies
Nothing to modify in lock file
Writing lock file
Installing dependencies from lock file
Package operations: 0 installs, 0 updates, 54 removals
  - Removing theseer/tokenizer (1.2.1)
  - Removing symfony/translation (v3.4.47)
  - Removing symfony/polyfill-php72 (v1.26.0)
  - Removing symfony/polyfill-intl-idn (v1.17.1)
  - Removing symfony/dom-crawler (v2.7.51)
  - Removing symfony/css-selector (v2.8.52)
  - Removing sebastian/version (2.0.1)
  - Removing sebastian/type (1.1.4)
  - Removing sebastian/resource-operations (2.0.2)
  - Removing sebastian/recursion-context (3.0.1)
  - Removing sebastian/object-reflector (1.1.2)
  - Removing sebastian/object-enumerator (3.0.4)
  - Removing sebastian/global-state (3.0.2)
  - Removing sebastian/exporter (3.1.4)
  - Removing sebastian/environment (4.2.4)
  - Removing sebastian/diff (3.0.3)
  - Removing sebastian/comparator (3.0.3)
  - Removing sebastian/code-unit-reverse-lookup (1.0.2)
  - Removing phpunit/phpunit (8.5.27)
  - Removing phpunit/php-token-stream (4.0.4)
  - Removing phpunit/php-timer (2.1.3)
  - Removing phpunit/php-text-template (1.2.1)
  - Removing phpunit/php-file-iterator (2.0.5)
  - Removing phpunit/php-code-coverage (7.0.15)
  - Removing phpspec/prophecy (v1.15.0)
  - Removing phpdocumentor/type-resolver (1.6.1)
  - Removing phpdocumentor/reflection-docblock (5.3.0)
  - Removing phpdocumentor/reflection-common (2.2.0)
  - Removing php-webdriver/webdriver (1.12.1)
  - Removing phar-io/version (3.2.1)
  - Removing phar-io/manifest (2.0.3)
  - Removing pdepend/pdepend (2.6.0)
  - Removing oxid-esales/testing-library (v8.1.0)
  - Removing oxid-esales/php-selenium (v1.0.5)
  - Removing oxid-esales/oxideshop-ide-helper (v4.1.0)
  - Removing oxid-esales/mink-selenium-driver (v1.1.2)

                                                                                                                                    
  [ErrorException]                                                                                                                  
  require(/var/www/html/vendor/composer/../symfony/polyfill-php72/bootstrap.php): failed to open stream: No such file or directory  
                                                                                                                                    

require [--dev] [--dry-run] [--prefer-source] [--prefer-dist] [--prefer-install PREFER-INSTALL] [--fixed] [--no-suggest] [--no-progress] [--no-update] [--no-install] [--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] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--apcu-autoloader-prefix APCU-AUTOLOADER-PREFIX] [--] [<packages>]...

composer [require d3/unzer:^6.2 --update-no-dev] failed, composer command failed: exit status 1. stderr=

Ich nutze die composer Version 2.2.13 und habe es auch schon mit composer Version 1.10.x versucht.

Ich verstehe hier nicht. Weiter oben entfernt er dieses polyfill und weiter unten fehlt es.

Problem gelöst. Wer auch immer mal das gleiche Problem hat…

Füge manuell in die composer.json hinzu:

    "config": {
        "platform": {
            "php": "7.4.29"
        }
    },
    "require": {
        "php": "7.4.29",
        "d3/unzer": "^6.2",
1 Like

Hallo O-Schumiel,

es freut mich, dass die Installation doch noch funktioniert hat.

Ich habe noch 2 generelle Anmerkungen, da das Problem auch bei anderen Modulen auftreten kann. Deine Beobachtungen sind keine Besonderheiten dieses Moduls:

  • stelle bitte sicher, dass auf der Konsole standardmäßig (!) die selben PHP-Version läuft, wie auf Deinem Webserver / Shop. Die unterscheiden sich durchaus gern. Du kannst zwar config - platform - php in der Composer.json hinzufügen. Das kann aber immer noch Schwierigkeiten bereiten, wenn z.B. die nachgelagerten Scripte ausgeführt werden.
  • Bei Deiner Installation wurden die früher installierten Dev-Packages entfernt. Das Wechseln zwischen Dev- und No-Dev bereitet schon mal Schwierigkeiten. Das war auch die Ursache Deiner Meldung. Für Produktivsysteme empfielt es sich schon aus Sicherheitsgründen, grundsätzlich auf die Dev-Pakete zu verzichten. Dazu kennt Composer leider keine Konfiguration. Deshalb kannst Du dieses Paket dazu verwenden: d3/oxid-dev-replacement - Packagist. Damit kann so was nicht mehr passieren.
2 Likes

Konfiguration nicht.

Holzhammer Methode:

  1. vendor Verzeichnis löschen
  2. composer install --no-dev

Interessant, danke fürs Teilen.

1 Like

Mit “Konfiguration” meinte ich eine persistente Einstellung. Sobald nach der Holzhammermethode wieder ein composer Command ohne --no-dev / --update-no-dev ausgeführt wird, hat man die Devs wieder im System. Aus eigener Erfahrung weiß ich, dass das häufiger als gewünscht passiert.

Weitere Nebenläufigkeit ist, dass --no-dev nur im Installationsstep wirkt, nicht im Dependency-Resolution-Step. Das kann also selbst dann zu Konflikten führen.

1 Like

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.