96 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace Nextend\Framework\Data;
 | |
| 
 | |
| 
 | |
| class Data {
 | |
| 
 | |
|     /**
 | |
|      * @var array
 | |
|      */
 | |
|     public $_data = array();
 | |
| 
 | |
|     public function __construct($data = null, $json = false) {
 | |
| 
 | |
|         if ($data) {
 | |
|             if (is_array($data)) {
 | |
|                 $this->loadArray($data);
 | |
|             } else {
 | |
|                 $this->loadJSON($data);
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @param $json
 | |
|      */
 | |
|     public function loadJSON($json) {
 | |
|         if ($json !== null) {
 | |
|             $array = json_decode($json, true);
 | |
|             if (is_array($array)) $this->_data = array_merge($this->_data, $array);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @param $array
 | |
|      */
 | |
|     public function loadArray($array) {
 | |
|         if (!$this->_data) $this->_data = array();
 | |
|         if (is_array($array)) $this->_data = array_merge($this->_data, $array);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @return mixed|string
 | |
|      */
 | |
|     public function toJSON() {
 | |
|         return json_encode($this->_data);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @return array
 | |
|      */
 | |
|     public function toArray() {
 | |
|         return (array)$this->_data;
 | |
|     }
 | |
| 
 | |
|     public function has($key) {
 | |
| 
 | |
|         return isset($this->_data[$key]);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @param string $key
 | |
|      * @param string $default
 | |
|      *
 | |
|      * @return mixed
 | |
|      */
 | |
|     public function get($key, $default = '') {
 | |
|         if (isset($this->_data[$key])) return $this->_data[$key];
 | |
| 
 | |
|         return $default;
 | |
|     }
 | |
| 
 | |
|     public function getIfEmpty($key, $default = '') {
 | |
|         if (isset($this->_data[$key]) && !empty($this->_data[$key])) return $this->_data[$key];
 | |
| 
 | |
|         return $default;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * @param string $key
 | |
|      * @param mixed  $value
 | |
|      */
 | |
|     public function set($key, $value) {
 | |
|         $this->_data[$key] = $value;
 | |
|     }
 | |
| 
 | |
|     public function un_set($key) {
 | |
|         if (isset($this->_data[$key])) {
 | |
|             unset($this->_data[$key]);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     public function fillDefault($defaults) {
 | |
|         $this->_data = array_merge($defaults, $this->_data);
 | |
|     }
 | |
| } |