public static function fromArray($data) { if (!is_null($data)) { $schedule = new Schedule(null, null); foreach ($data as $key => $value) { if (property_exists(get_class($schedule), $key)) { if ($key == "schedule_start_and_end") { $schedule->{$key} = ScheduleSartAndEnd::fromArray($value); } elseif ($key == "monthly_schedule") { $schedule->{$key} = MontlySchedule::fromArray($value); } elseif ($key == "yearly_schedule") { $schedule->{$key} = YearlySchedule::fromArray($value); } elseif ($key == "weekly_schedule") { $schedule->{$key} = WeeklySchedule::fromArray($value); } elseif ($key == "specific_dates_schedule") { $schedule->{$key} = SpecificDatesSchedule::fromArray($value); } else { $schedule->{$key} = $value; } } } return $schedule; } }