public function dump(array $dataStructure = null)
{
$data = null;
if (!$dataStructure) {
return $data;
}
foreach ($dataStructure as $key => $subdata) {
if (is_numeric($key)) {
$data[$subdata] = $this->{$subdata};
} elseif (is_array($subdata)) {
if (!empty($this->{$key})) {
if ($this->{$key} instanceof SimpleResultSet || is_array($this->{$key})) {
$subdatas = array();
foreach ($this->{$key} as $child) {
if (method_exists($child, 'dump')) {
$subdatas[] = $child->dump($subdata);
}
}
$data[$key] = $subdatas;
} elseif (method_exists($this->{$key}, 'dump')) {
$data[$key] = $this->{$key}->dump($subdata);
} else {
$data[$key] = null;
}
} else {
$data[$key] = null;
}
} elseif (is_string($subdata)) {
$data[$key] = $this->{$subdata}();
}
}
return $data;
}