X

Magento 2: Type Error occurred when creating object: Magento\Framework\Locale\Resolver

Столкнулся с ошибкой "Type Error occurred when creating object: Magento\Framework\Locale\Resolver", происходит она из-за того, что..

в файле /vendor/magento/framework/Encryption/Adapter/SodiumChachaIetf.php

метод decrypt возврящает NULL хотя ожидается, что он будет возвращать строку.

public function decrypt(string $data): string
{
    $nonce = mb_substr($data, 0, SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NPUBBYTES, '8bit');
    $payload = mb_substr($data, SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NPUBBYTES, null, '8bit');

    $plainText = sodium_crypto_aead_chacha20poly1305_ietf_decrypt(
        $payload,
        $nonce,
        $nonce,ф
        $this->key
    );

    return $plainText;   // <- тут проблема
}

Чтобы исправить, открываем его в редакторе и делаем приведение типа к строке, в return-е

public function decrypt(string $data): string
{
    $nonce = mb_substr($data, 0, SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NPUBBYTES, '8bit');
    $payload = mb_substr($data, SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NPUBBYTES, null, '8bit');

    $plainText = sodium_crypto_aead_chacha20poly1305_ietf_decrypt(
        $payload,
        $nonce,
        $nonce,ф
        $this->key
    );

    return (string) $plainText;   // <- добавляем приведение типа к строке
}

Все, можно дальше продолжать работать 🙂

Категории: Magento