MehmetCanYUMUTUTAN transaction_date alanlarını casting ile datetime yapın, sanırım en kısa böyle olur:
if (is_null($this->historyInstallationEnded)
|| is_null($this->historyInstallationStart)
|| in_array($status, [ProjectStatuses::INSTALLATION_START, ProjectStatuses::INSTALLATION_ONHOLD])
) {
return '';
}
return $this->historyInstallationEnded
->transaction_date
->longRelativeDiffForHumans($this->historyInstallationStart->transaction_date, 6);
Şu alltaki kısmı ProjectStatuses içinde bir yöntem yaparsanız, ProjectStatuses::hasStatus(string $status): bool
gibi, biraz daha kısalabilir:
in_array($status, [ProjectStatuses::INSTALLATION_START, ProjectStatuses::INSTALLATION_ONHOLD])
Yani yöntemlere bölerseniz daha da kısalır:
if (is_null($this->historyInstallationEnded)
|| is_null($this->historyInstallationStart)
|| ProjectStatuses::hasStatus($this->status)
) {
return '';
}
return $this->historyInstallationEnded
->transactionDiff($this->historyInstallationStart->transaction_date);
Bana sorarsanız çok da değişen bir şey olmuyor. Bu accessor'ü iterasyon içinde kullanırken dikkatli olun.