Composer update scheitert an oe-eshop-ide_helper: undefined function oxNew

composer update geht bei mir nicht mehr. Es scheitert am oe-eshop-ide_helper

# ./vendor/bin/oe-eshop-ide_helper
PHP Fatal error:  Uncaught Error: Call to undefined function oxNew() in /private/oxid6/vendor/oxid-esales/oxideshop-ce/source/Core/Registry.php:409
Stack trace:
#0 /private/oxid6/vendor/oxid-esales/oxideshop-ce/source/Core/Registry.php(429): OxidEsales\EshopCommunity\Core\Registry::createObject()
#1 /private/oxid6/vendor/oxid-esales/oxideshop-ce/source/Core/Registry.php(52): OxidEsales\EshopCommunity\Core\Registry::getObject()
#2 /private/oxid6/vendor/oxid-esales/oxideshop-ce/source/Core/DatabaseProvider.php(230): OxidEsales\EshopCommunity\Core\Registry::get()
#3 /private/oxid6/vendor/oxid-esales/oxideshop-ce/source/Core/DatabaseProvider.php(190): OxidEsales\EshopCommunity\Core\DatabaseProvider->fetchConfigFile()
#4 /private/oxid6/vendor/oxid-esales/oxideshop-ce/source/Core/DatabaseProvider.php(101): OxidEsales\EshopCommunity\Core\DatabaseProvider->createD in /private/oxid6/vendor/oxid-esales/oxideshop-ce/source/Core/Registry.php on line 409

PHP 7.4, OXID CE 6.4.1

Jemand eine Idee was hier schief läuft?

Composer Version ? 6.4x ist nicht kompatibel mit 2.3.xx

mh, Composer 1.10.26
aber der Fehler ist von PHP.
Wieso denkst du es liegt an Composer?

Dito nicht 2.3 :
Nimm composer mind. 2.2.7 und nicht vorher vergessen auch composer Cache leeren ,-)

Und Check ob php 7.4 auch über cli mit composer ausgeführt wird.

Der Fehler ist bekannt. Kannst auchG00glen.
Je nach Composer installiert “er” Dir irgend einen “Mist”, der vielleicht zur eingestellten Version passt, aber nicht zum System. Dies kann daran liegen, dass, wie oben bereits erwähnt, vielleicht noch die falsche php-Version im Composer eingestellt ist, im Ordner aber eine andere php-Version arbeitet. Check ssh:php -v

Für 6.4x benötigst Du in jedem Fall Composer 2.2: ssh:composer selfupdate 2.2.14

Standard Update — OXID eShop 6.4 | User documentation (oxid-esales.com)

Danke für die Hilfe.

Leider hat es damit auch nicht geklappt:

/oxid$ php -v
PHP 7.4.30 (cli) (built: Jun 27 2022 08:11:59) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with the ionCube PHP Loader + ionCube24 v11.0.1, Copyright (c) 2002-2022, by ionCube Ltd.
    with Zend OPcache v7.4.30, Copyright (c), by Zend Technologies

/oxid$ composer -V
Composer version 2.2.14 2022-06-06 16:32:50

/oxid$ composer install
(...)
Updating the "test_config.yml" file
> if [ -f ./vendor/bin/oe-eshop-ide_helper ]; then oe-eshop-ide_helper; fi
PHP Fatal error:  Uncaught Error: Call to undefined function oxNew() in /oxid/vendor/oxid-esales/oxideshop-ce/source/Core/Registry.php:409
Stack trace:
#0 /oxid/vendor/oxid-esales/oxideshop-ce/source/Core/Registry.php(429): OxidEsales\EshopCommunity\Core\Registry::createObject()
#1 /oxid/vendor/oxid-esales/oxideshop-ce/source/Core/Registry.php(52): OxidEsales\EshopCommunity\Core\Registry::getObject()
#2 /oxid/vendor/oxid-esales/oxideshop-ce/source/Core/DatabaseProvider.php(230): OxidEsales\EshopCommunity\Core\Registry::get()
#3 /oxid/vendor/oxid-esales/oxideshop-ce/source/Core/DatabaseProvider.php(190): OxidEsales\EshopCommunity\Core\DatabaseProvider->fetchConfigFile()
#4 /oxid/vendor/oxid-esales/oxideshop-ce/source/Core/DatabaseProvider.php(101): OxidEsales\EshopCommunity\Core\DatabaseProvider->createD in /oxid/vendor/oxid-esales/oxideshop-ce/source/Core/Registry.php on line 409
Script if [ -f ./vendor/bin/oe-eshop-ide_helper ]; then oe-eshop-ide_helper; fi handling the oe:ide-helper:generate event returned with error code 255
Script @oe:ide-helper:generate was called via post-install-cmd

Wie sieht die composer.json aus?

Wenn ich das mit einer “frischen” Datei vergleiche sehe ich nur ein paar Unterschiede:

  • bei “allow-plugins” habe ich noch ocramius/package-versions
  • OXID-esales/testing-library hat “^v8.0.0” statt “^v8.1.0”. installiert ist aber v8.1.0
  • dann zusätzliche Modue in require und repositories
{
  "name": "oxid-esales/oxideshop-project",
  "type": "project",
  "description": "This file should be used as an OXID eShop project root composer.json file. Entries provided here intended to be examples and could be changed to your specific needs.",
  "license": [
    "GPL-3.0-only"
  ],
  "minimum-stability": "stable",
  "require": {
    "oxid-esales/oxideshop-metapackage-ce": "v6.4.1",
    "draufgeschaut/dgamazon": "^5.20",
    "tronet/trosofortueberweisung": "^8.0",
    "cr/cleverreach": "dev-main",
    "netensio/net_analytics": "*",
    "kemweb/kwspam": "dev-main"
  },
  "require-dev": {
    "oxid-esales/testing-library": "^v8.0.0",
    "incenteev/composer-parameter-handler": "^v2.0.0",
    "oxid-esales/oxideshop-ide-helper": "^v4.1.0",
    "oxid-esales/azure-theme": "^v1.4.2"
  },
  "autoload-dev": {
    "psr-4": {
      "OxidEsales\\EshopCommunity\\Tests\\": "./vendor/oxid-esales/oxideshop-ce/tests"
    }
  },
  "scripts": {
    "post-install-cmd": [
      "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
      "@oe:ide-helper:generate"
    ],
    "post-update-cmd": [
      "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
      "@oe:ide-helper:generate"
    ],
    "oe:ide-helper:generate": [
      "if [ -f ./vendor/bin/oe-eshop-ide_helper ]; then oe-eshop-ide_helper; fi"
    ]
  },
  "config": {
    "preferred-install": {
      "*": "dist"
    },
    "allow-plugins": {
      "ocramius/package-versions": true,
      "oxid-esales/oxideshop-unified-namespace-generator": true,
      "oxid-esales/oxideshop-composer-plugin": true
    }
  },
  "extra": {
    "incenteev-parameters": {
      "file": "test_config.yml",
      "dist-file": "vendor/oxid-esales/testing-library/test_config.yml.dist",
      "parameter-key": "mandatory_parameters",
      "env-map": {
        "shop_path": "SHOP_PATH",
        "shop_tests_path": "SHOP_TESTS_PATH",
        "partial_module_paths": "PARTIAL_MODULE_PATHS"
      }
    }
  },
  "repositories": {
    "draufgeschaut": {
      "type": "composer",
      "url": "https://update.draufgeschaut.de"
    },
    "tronet/trosofortueberweisung": {
      "type": "git",
      "url": "https://github.com/tronet-dev/sofort_gateway"
    },
    "cr/cleverreach": {
      "type": "path",
      "url": "./source/modules/cr/cleverreach"
    },
    "netensio/net_analytics": {
      "type": "path",
      "url": "extensions/net_analytics"
    },
    "kemweb/kwspam": {
      "type": "path",
      "url": "./source/modules-kw/kwspam"
    }
  }
}

Bin unterwegs, meine aber mich zu erinnern, daas die composer.json u.U. manuell angepasst werden muss.

Mit dem Wechsel auf composer 2 kamen die “allow-plugins” dazu.

Vielleicht macht eins der Plugins da etwas kaputt? Müsste ich vielleicht mal austesten…

mach doch mal hier /vendor/bin den befehl php -v

Da sagt er auch 7.4

Updating the "test_config.yml" file
> php -v
PHP 7.4.30 (cli) (built: Jun 27 2022 08:11:59) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with the ionCube PHP Loader + ionCube24 v11.0.1, Copyright (c) 2002-2022, by ionCube Ltd.
    with Zend OPcache v7.4.30, Copyright (c), by Zend Technologies

hast du noch module drin die nicht über composer installiert wurrden?

Ach, Hallo Volker Dörk!

Ja, wir haben sogar mehrere Module die noch nicht über composer kommen.

An sich ist das “nur” der IDE Helper. Ist also nicht unbedingt kritisch, wenn wir den raus nehmen, oder?

ja ich würde hier mal die metadata.php ansehen ob so was enthalten ist.

ps. volker reicht