|
@@ -19,17 +19,19 @@ trait ExtraDataTrait
|
|
|
* )
|
|
|
*/
|
|
|
private $extraData;
|
|
|
+
|
|
|
/**
|
|
|
* @var array Pasa el extra data a un array.
|
|
|
*/
|
|
|
private $_extraData_array = null;
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
* @return string
|
|
|
*/
|
|
|
public function getExtraData()
|
|
|
{
|
|
|
- return $this->extraData;
|
|
|
+ return is_null($this->extraData) ? "" : $this->extraData;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -40,7 +42,8 @@ trait ExtraDataTrait
|
|
|
public function setExtraData($extraData = null)
|
|
|
{
|
|
|
$this->extraData = $extraData;
|
|
|
- $this->_extraData_array = json_decode($this->extraData, true);
|
|
|
+ $this->_extraData_array = json_decode($this->getExtraData(), true);
|
|
|
+
|
|
|
return $this;
|
|
|
}
|
|
|
|
|
@@ -50,8 +53,9 @@ trait ExtraDataTrait
|
|
|
public function jsonExtraData()
|
|
|
{
|
|
|
if ($this->_extraData_array == null) {
|
|
|
- $this->_extraData_array = json_decode($this->extraData, true);
|
|
|
+ $this->_extraData_array = json_decode($this->getExtraData(), true);
|
|
|
}
|
|
|
+
|
|
|
return $this->_extraData_array;
|
|
|
}
|
|
|
|
|
@@ -62,7 +66,7 @@ trait ExtraDataTrait
|
|
|
*/
|
|
|
public function setJsonExtraData($extraData)
|
|
|
{
|
|
|
- return $this->setExtraData(json_encode($extraData));
|
|
|
+ return $this->setExtraData(json_encode($extraData, JSON_UNESCAPED_UNICODE));
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -77,41 +81,54 @@ trait ExtraDataTrait
|
|
|
if (isset($extraData[$key])) {
|
|
|
$value = $extraData[$key];
|
|
|
}
|
|
|
+
|
|
|
return $value;
|
|
|
}
|
|
|
|
|
|
- //public function __call($name, $arguments)
|
|
|
- //{
|
|
|
- // if (substr($name, 0, 3) == 'get') {
|
|
|
- // return $this->__get(substr($name, 3));
|
|
|
- // } else if (substr($name, 0, 3) == 'set') {
|
|
|
- // return $this->__set(substr($name, 3), $arguments);
|
|
|
- // } else {
|
|
|
- // return null;
|
|
|
- // }
|
|
|
- //}
|
|
|
-
|
|
|
- public function __isset($name){
|
|
|
+ /**
|
|
|
+ * @param string $name
|
|
|
+ *
|
|
|
+ * @return boolean
|
|
|
+ */
|
|
|
+ public function __isset($name)
|
|
|
+ {
|
|
|
$extraData = $this->jsonExtraData();
|
|
|
+
|
|
|
return isset($extraData[$name]);
|
|
|
}
|
|
|
|
|
|
- public function __unset($name){
|
|
|
- $extra = $this->jsonExtraData();
|
|
|
+ /**
|
|
|
+ * @param string $name
|
|
|
+ */
|
|
|
+ public function __unset($name)
|
|
|
+ {
|
|
|
+ $extra = $this->jsonExtraData();
|
|
|
unset($extra[$name]);
|
|
|
$this->setJsonExtraData($extra);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @param string $name
|
|
|
+ *
|
|
|
+ * @return mixed
|
|
|
+ */
|
|
|
public function __get($name)
|
|
|
{
|
|
|
return $this->getData($name);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @param string $name
|
|
|
+ * @param string $value
|
|
|
+ *
|
|
|
+ * @return ExtraDataTrait
|
|
|
+ */
|
|
|
public function __set($name, $value)
|
|
|
{
|
|
|
$extra = $this->jsonExtraData();
|
|
|
$extra[$name] = $value;
|
|
|
$this->setJsonExtraData($extra);
|
|
|
+
|
|
|
return $this;
|
|
|
}
|
|
|
}
|