Я веб-разработчик, и я пишу код в PHP/Laravel framework. Я завязывался, чтобы следовать лучшей практике написания кода, и я знаю, что хорошей практикой является писать 15-20 строк кода в функциях и максимум 200 строк кода в классах. Но каждый раз, когда я заканчиваю писать минимум 40-50 строк в функции. например, здесь фрагмент кода, который я написал, чтобы получить информацию о клиенте и назначенных пользователях.Как уменьшить количество строк кода в PHP?
public function preMessageSend($client, $assigned)
{
$ticket_number = $client->ticket_number;
$title = $client->title;
$department = $client->department;
$priority = $client->priority;
if ($client->first_name !== null || $client->first_name !== '') {
$client_name = $client->first_name." ".$client->last_name;
} else {
$client_name = $client->username;
}
if ($client->email !== '' || $client->email !== null) {
$client_email = $client->email;
} else {
$client->email = 'Not available';
}
if($client->mobile !== null || $client->mobile !== '') {
$client_mobile = $client->code."".$client->mobile;
} else {
$client_mobile = 'Not available';
}
if($assigned != null) {
if ($assigned->first_name !== null || $assigned->first_name !== '') {
$assigned_name = $assigned->first_name." ".$assigned->last_name;
} else {
$assigned_name = $assigned->username;
}
if ($assigned->email !== '' || $assigned->email !== null) {
$assigned_email = $assigned->email;
} else {
$assigned->email = 'Not available';
}
if($assigned->mobile !== null || $assigned->mobile !== '') {
$assigned_mobile = $assigned->code."".$assigned->mobile;
} else {
$assigned_mobile = 'Not available';
}
if ($assigned->address !== null || $assigned->address !== '') {
$assigned_address = $assigned->address;
} else {
$assigned_address = 'Not available';
}
$this->sendMessageWithAssigned($ticket_number, $title, $department, $priority, $client_name, $client_email, $client_mobile, $assigned_name, $assigned_email, $assigned_mobile, $assigned_address);
} else {
$this->sendMessageWithoutAssigned($ticket_number, $title, $department, $priority, $client_name, $client_email, $client_mobile);
}
Пожалуйста, скажите мне, как я могу уменьшить LOC в моем классе и функций и каковы лучшие практики, чтобы избежать написания таких длинных функций. ТИА
Первый вопрос: зачем вам присваивать все эти свойства объекта клиента локальным переменным? –
Я думаю, что вы можете сделать пустую проверку вместо всех этих «не нулевых, а не пустых строк» – danopz
вы можете переписать большинство ваших условий в тройной оператор один лайнер '$ client_mobile = ($ client-> mobile! == null || $ client-> mobile! == '')? $ client-> code. "". $ client-> mobile: 'Недоступно'; ' –