나는 웹 개발자이며 PHP/Laravel 프레임 워크로 코드를 작성합니다. 필자는 코드 작성을위한 모범 사례를 따르기 위해 노력해 왔으며 함수에 최대 15 줄의 코드를 작성하고 클래스에 최대 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를 줄이고 같은 긴 함수를 작성 피하기 위해 가장 좋은 방법은 무엇인가 할 수있는 방법을 가르쳐주세요. TIA
첫 번째 질문 : 왜 모든 클라이언트 개체 속성을 로컬 범위 변수에 할당해야합니까? –
나는 빈 문자열이 아닌 널이 아닌 빈 체크를 할 수 있다고 생각한다. – danopz
대부분의 조건을 삼항 연산자 하나의 라이너로 다시 쓸 수있다. $ client_mobile = ($ client-> mobile | = null || $ client-> mobile! == '')? $ client-> code. ""$ client-> mobile : '사용할 수 없음'; –