public function hydrate(CalendarDateTime $dt, Calendar $calendar) { $this->CachedCalendarID = $calendar->ID; foreach ($dt->db() as $field => $type) { $this->{$field} = $dt->{$field}; } foreach ($dt->has_one() as $field => $type) { $this->{$field . "ID"} = $dt->{$field . "ID"}; } $this->DateRange = $dt->DateRange(); $this->TimeRange = $dt->TimeRange(); $this->ICSLink = $dt->ICSLink(); $this->Title = $dt->getTitle(); $this->Content = $dt->getContent(); return $this; }