_count = $count; } public function getCount() { return $this->_count; } /** * @var array */ private $_data; public function setData($data) { $this->_data = $data; } public function getData() { return $this->_data; } function jsonSerialize() { return array( "Count" => $this->_count, "Data" => LuDbo::serializeValue($this->_data) ); } function __construct($count = 0, $data = array()) { $this->_count = $count; $this->_data = $data; } function map(callable $callback) { $values = []; foreach ($this->_data as $data) { $values[] = $callback($data); } return new static($this->_count, $values); } public static function jsonDeserialize($json) { return new static($json["Count"], $json["Data"]); } public static function generateSample() { return [ "Count" => 42, "Data" => [] ]; } }