Ejemplo n.º 1
0
 /**
  * Tests \Magento\Framework\DataObject->unsetData()
  */
 public function testUnsetData()
 {
     $data = ['key1' => 'value1', 'key2' => 'value2', 'key3' => 3, 'key4' => 4];
     $this->_object->setData($data);
     $this->_object->unsetData('key1');
     unset($data['key1']);
     $this->assertEquals($data, $this->_object->getData());
     $this->_object->unsetData(['key2', 'key3']);
     unset($data['key2']);
     unset($data['key3']);
     $this->assertEquals($data, $this->_object->getData());
     $this->_object->unsetData();
     $this->assertEquals([], $this->_object->getData());
 }
Ejemplo n.º 2
0
 /**
  * Try to unserialize the attribute value
  *
  * @param \Magento\Framework\DataObject $object
  * @return $this
  */
 protected function _unserialize(\Magento\Framework\DataObject $object)
 {
     $attrCode = $this->getAttribute()->getAttributeCode();
     if ($object->getData($attrCode)) {
         try {
             $unserialized = unserialize($object->getData($attrCode));
             $object->setData($attrCode, $unserialized);
         } catch (\Exception $e) {
             $object->unsetData($attrCode);
         }
     }
     return $this;
 }
Ejemplo n.º 3
0
 /**
  * Serialize specified field in an object
  *
  * @param DataObject $object
  * @param string $field
  * @param mixed $defaultValue
  * @param bool $unsetEmpty
  * @return $this
  */
 protected function _serializeField(DataObject $object, $field, $defaultValue = null, $unsetEmpty = false)
 {
     $value = $object->getData($field);
     if (empty($value) && $unsetEmpty) {
         $object->unsetData($field);
     } else {
         $object->setData($field, serialize($value ?: $defaultValue));
     }
     return $this;
 }
Ejemplo n.º 4
0
    /**
     * Serialize specified field in an object
     *
     * @param \Magento\Framework\DataObject $object
     * @param string $field
     * @param mixed $defaultValue
     * @param bool $unsetEmpty
     * @return $this
     */
    protected function _serializeField(\Magento\Framework\DataObject $object, $field, $defaultValue = null, $unsetEmpty = false)
    {
        $value = $object->getData($field);
        if (empty($value)) {
            if ($unsetEmpty) {
                $object->unsetData($field);
            } else {
                if (is_object($defaultValue) || is_array($defaultValue)) {
                    $defaultValue = serialize($defaultValue);
                }
                $object->setData($field, $defaultValue);
            }
        } elseif (is_array($value) || is_object($value)) {
            $object->setData($field, serialize($value));
        }

        return $this;
    }