Мне нужно зашифровать значение атрибута 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
}
}
Возможно, это опечатка или просто мелочь, но на самом деле я не понимаю. Это как если бы шифровальщик не был объявлен: /
Кто-то с идеей для меня?
Может быть, это неправильный путь, и мне нужно использовать наблюдателя?
Спасибо!