<?php
	interface Base extends JsonSerializable{
		private $data;
		public function __construct(){
			$this->data = array();
			// Constructor
		}
		public function __clone(){
			// Clone handler
		}
		public function __destruct(){
			// Destroy handler
			$this->data = array();
		}
		public function __toString(){
			$name = get_class($this);
			if(!$name){
				$name = "Object";
			}
			return "[".$name."]";
		}
		public function __invoke($res,$args){
			// Invoke handler
		}
		public function jsonSerialize(){
			return $this;
		}
		public function __get($name){
			if(isset($this->data[$name])){
				return $this->data[$name];
			}
		}
		public function __set($name,$value){
			if(isset($this->data[$name])){
				$this->data[$name] = $value;
			}
		}
		public function __isset($name){
			return isset($this->data[$name]);
		}
		public function __unset($name){
			unset($this->data[$name]);
		}
	}
?>