Adobe Commerce upgrade 2.4.3, 2.3.7-p1 PHP Fatal error Hotfix
I den här artikeln finns en korrigering för när handlare försöker uppgradera till Adobe Commerce (alla distributionsmetoder) eller Magento Open Source 2.4.3 eller 2.3.7-p1 som ser följande fel:
Allvarligt PHP-fel: Ohanterat fel: Anrop till den odefinierade funktionen Magento\Framework\Filesystem\Directory\str_contains() i <…>/magento/vendor/magento/framework/Filesystem/Directory/DenyListPathValidator.php:74
Problemet kommer att åtgärdas i version 2.4.4, 2.4.3-p1 och 2.3.7-p2.
Berörda versioner och produkter
- Adobe Commerce (alla distributionsmetoder) vid uppgradering till 2.3.7-p1 eller 2.4.3.
- Magento Open Source vid uppgradering till 2.3.7-p1 eller 2.4.3.
Problem
Problemet orsakas av de nya versionerna av Adobe Commerce 2.4.3 och 2.3.7-p1 som endast använder funktionen str_contains
i PHP 8. Adobe Commerce 2.4.3 och 2.3.7-p1 är bara kompatibla med PHP 7.4, så den här funktionen kan inte användas.
Steg som ska återskapas :
Försök att uppgradera till Adobe Commerce 2.4.3 eller 2.3.7-p1.
Förväntat resultat:
Uppgraderingen lyckades.
Faktiskt resultat:
Allvarligt PHP-fel.
Lösning
Som en tillfällig lösning kör du följande kommando i CLI/Terminal: composer require symfony/polyfill-php80
från rotmappen i Magento eller installerar en kompositkorrigering.
För att åtgärda problemet i 2.4.3 bör Adobe Commerce (alla distributionsmetoder) och Magento Open Source handlare tillämpa en patch:
AC-384_Fix_Incompatible_PHP_Method__2.4.3_ce.patch
För att åtgärda problemet med 2.3.7-p1 bör Adobe Commerce (alla distributionsmetoder) och Magento Open Source handlare tillämpa en patch:
AC-384__Fix_Incompatible_PHP_Method__2.3.7-p1_ce.patch
Så här använder du patchen
Mer information finns i Använda en dispositionsruta från Magento.
Relaterad läsning
GitHub PHP 8-kommandot stöds inte i Magento 2.4.3 EE #33680