page = $page; } public function add_group(Group $group) { array_push($this->groups, $group); $this->online += $group->get_online(); $this->total += $group->get_total(); } public function export(): array { return [ "page" => $this->page, "online" => $this->online, "total" => $this->total, "groups" => $this->groups ]; } public static function convert(array $oldPage, array $heartbeat): Page { $page = new Page($oldPage["config"]); foreach ($oldPage["publicGroupList"] as $oldGroup) { $page->add_group(Group::convert($oldGroup, $heartbeat)); } return $page; } }