Magento 2: использование шифратора в бэкэнд-модели - PullRequest
0 голосов
/ 20 марта 2019

Мне нужно зашифровать значение атрибута EAV клиента.

Итак, я создал свой атрибут клиента с пользовательским бэкэндом: \ Компания \ Модуль \ Model \ Атрибут \ Backend \ Hmacencrypt

В моем модуле я создал файл Hmacencrypt.php

<?php
namespace Company\Module\Model\Attribute\Backend;

class Hmacencrypt extends \Magento\Eav\Model\Entity\Attribute\Backend\AbstractBackend
{

    /**
     * @var EncryptorInterface
     */
     protected $_encryptor;

    /**
     * @param Context $context
     * @param EncryptorInterface $encryptor
     */
    public function __construct(
        Context $context,
        \Magento\Framework\Encryption\EncryptorInterface $encryptor
    )
    {
        $this->_encryptor = $encryptor;
        parent::__construct($context);
    }    

    public function beforeSave($object)
    {
        var_dump(isset($this)); // return TRUE
        var_dump(isset($this->_encryptor)); // return FALSE
        echo $this->_encryptor->encrypt("test"); //return error : Fatal error: Uncaught Error: Call to a member function encrypt() on null
    }
}

Возможно, это опечатка или просто мелочь, но на самом деле я не понимаю. Это как если бы шифровальщик не был объявлен: /

Кто-то с идеей для меня? Может быть, это неправильный путь, и мне нужно использовать наблюдателя?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...