public function fetchAll($filter = null, $order = null)
{
$data = $this->data;
if (is_callable($filter)) {
$filteredData = [];
foreach ($data as $row) {
if ($filter($row)) {
$filteredData[] = $row;
}
}
$data = $filteredData;
}
if (is_callable($order)) {
usort($data, $order);
}
return $data;
}