XylotrechusZ
<?php
class Brizy_Editor_Forms_Field extends Brizy_Admin_Serializable {
use Brizy_Editor_Forms_DynamicPropsAware;
/**
* Brizy_Editor_Forms_Field constructor.
*
* @param \BrizyForms\Model\Field|null $field
*/
public function __construct( \BrizyForms\Model\Field $field = null ) {
$this->data = array();
if ( $field ) {
$this->data = array(
'slug' => $field->getSlug(),
'name' => $field->getName(),
'required' => $field->getRequired()
);
}
}
/**
* @return string
*/
public function serialize() {
return serialize( $this->jsonSerialize() );
}
public function unserialize( $serialized ) {
$unserialize = unserialize( $serialized );
if ( is_array( $unserialize ) ) {
$this->data = $unserialize;
}
return $this->data = [];
}
#[ReturnTypeWillChange]
public function jsonSerialize() {
return is_array( $this->data ) ? $this->data : [];
}
public function convertToOptionValue() {
return $this->data;
}
static public function createFromSerializedData( $data ) {
$instance = new self();
foreach ( $data as $key => $val ) {
$instance->set( $key, $val );
}
return $instance;
}
/**
* @param $json_obj
*
* @return Brizy_Editor_Forms_Field|void
* @throws Exception
*/
public static function createFromJson( $json_obj ) {
if ( ! isset( $json_obj ) ) {
throw new Exception( 'Bad Request', 400 );
}
if ( is_object( $json_obj ) ) {
return self::createFromSerializedData( get_object_vars( $json_obj ) );
}
return new self();
}
}