我有一个函数,同时执行大约5个任务,这严重违反了面向对象编程的原则。有人能帮我将其拆分吗?特别是在其他函数中调用函数是一种很棘手的问题。
public function status(){
$client = new Client();
$notification=Notification::where('active',1)->get();
$status = Status::where('name', 'health')->first();
$default_frequency = 1;
foreach ($notification as $note) {
$status_health = $note->status('health');
$check_frequency = isset($note->check_frequency) ? intval($note->check_frequency) : $default_frequency;
$date = \Carbon\Carbon::parse($status_health['timestamp']);
$elapsed_time = $date->diffInMinutes();
if($elapsed_time < $check_frequency){
continue;
}
$response = $client->get($note->website_url, ['http_errors' => false]);
$resCode = $response->getStatusCode();
$note->statuses()->attach($status,['values'=> $resCode === 200 ? 'up' : 'down']);
}
}