core/Frontend/AbstractRenderSettings.php
<?php
namespace Kontentblocks\Frontend;
abstract class AbstractRenderSettings implements \ArrayAccess, \JsonSerializable
{
/**
* (PHP 5 >= 5.0.0)<br/>
* Offset to unset
* @link http://php.net/manual/en/arrayaccess.offsetunset.php
* @param mixed $offset <p>
* The offset to unset.
* </p>
* @return void
*/
public function offsetUnset( $offset )
{
if (property_exists( $this, $offset )) {
unset( $this->$offset );
}
}
/**
* (PHP 5 >= 5.4.0)<br/>
* Specify data which should be serialized to JSON
* @link http://php.net/manual/en/jsonserializable.jsonserialize.php
* @return mixed data which can be serialized by <b>json_encode</b>,
* which is a value of any type other than a resource.
*/
function jsonSerialize()
{
return $this->export();
}
/**
* (PHP 5 >= 5.0.0)<br/>
* Offset to set
* @link http://php.net/manual/en/arrayaccess.offsetset.php
* @param mixed $offset <p>
* The offset to assign the value to.
* </p>
* @param mixed $value <p>
* The value to set.
* </p>
* @return void
*/
public function offsetSet( $offset, $value )
{
$this->$offset = $value;
}
/**
* (PHP 5 >= 5.0.0)<br/>
* Whether a offset exists
* @link http://php.net/manual/en/arrayaccess.offsetexists.php
* @param mixed $offset <p>
* An offset to check for.
* </p>
* @return boolean true on success or false on failure.
* </p>
* <p>
* The return value will be casted to boolean if non-boolean was returned.
*/
public function offsetExists( $offset )
{
return property_exists( $this, $offset ) && !empty( $this->$offset );
}
/**
* (PHP 5 >= 5.0.0)<br/>
* Offset to retrieve
* @link http://php.net/manual/en/arrayaccess.offsetget.php
* @param mixed $offset <p>
* The offset to retrieve.
* </p>
* @return mixed Can return all value types.
*/
public function offsetGet( $offset )
{
return $this->get( $offset );
}
/**
* @param $property
* @return mixed| null
*/
public function get( $property, $default = null )
{
if (property_exists( $this, $property )) {
return $this->$property;
}
return $default;
}
abstract protected function setupProperties($args);
abstract public function export();
abstract public function import($args);
}