در این مقاله سعی داریم برخی از مفاهیم تمیز نوشتن کد در زبان PHP را بررسی نماییم . کد تمیز کدی است که قابلیت خوانایی بالایی زیادی توسط دیگر برنامه نویسان دارد و همچنین از best practice ها و امکانات خوب زبان های برنامه نویسی استفاده کرده باشد .
در زیر برخی از راهنمایی های نوشتن کد تمیز در PHP ارائه شده است :

- ورودی توابع ، اگر ورودی توابع بیش از 2 عدد باشد بهتر است از قابلیت معرفی شده در خط پایینتر استفاده کنیم.

کد کثیف :

function createNewUser($id,$firstName,$lastName,$email,$password,$phone);​

- کد تمیز  (با استفاده از قابلیت شی گرایی):

<?php

class User
{
    private $id;

    private $firstName;

    private $lastName;

    private $email;

    private $password;

    private $phone;


    public function getId()
    {
        return $this->id;
    }


    public function setId($id): void
    {
        $this->id = $id;
    }


    public function getFirstName()
    {
        return $this->firstName;
    }


    public function setFirstName($firstName): void
    {
        $this->firstName = $firstName;
    }


    public function getLastName()
    {
        return $this->lastName;
    }


    public function setLastName($lastName): void
    {
        $this->lastName = $lastName;
    }


    public function getEmail()
    {
        return $this->email;
    }


    public function setEmail($email): void
    {
        $this->email = $email;
    }


    public function getPassword()
    {
        return $this->password;
    }


    public function setPassword($password): void
    {
        $this->password = $password;
    }


    public function getPhone()
    {
        return $this->phone;
    }


    public function setPhone($phone): void
    {
        $this->phone = $phone;
    }

}

function createNewUser(User $user)
{
    //do something ...
}

$user = new User();

$user->setId(1);
$user->setFirstName("Reza");
$user->setLastName("Eskandari");
$user->setEmail("user@mail");
$user->setPhone("123456");

createNewUser($user);
?>


- توابع فقط باید یک کار و وظیف مشخص را انجام دهند .
 
کد کثیف :

<?php
function senEmailToActiveUser($users){
    foreach ($users as $user){
        $userRecord = $db->find($user);
        if ($userRecord->is_active){
            sendMail($user);
        }
    }
}
?>


کد تمیز ( در این قسمت وظیفه ها شکسته شده و هر کدام توسط یک function اجرا میشوند) :

<php

function emailUsers($users) {
    $activeUsers = activeUsers($users);
    array_walk($activeUsers, 'sendMail');
}

function activeUsers($users) {
    return array_filter($users, 'isUserActive');
}

function isActiveUser($user) {
    $users = $db->find($user);
    return $users->is_ctive;
}

?>


- به پراپرتی های یک کلاس پیشوند اضافه نکنید .

کد کثیف :

<?php

class Animal
{
    private $animalName;

    private $animalType;

    private $animalFamily;
}


?>

کد تمیز : 

<?php

class Animal
{
    private $name;

    private $type;

    private $family;
}


?>​


- اجتناب از نوشتن شرط های کثیف و اضافه .

کد کثیف :

<?php
if (condition == true) {
    continue;
} else {
    die("Error") or exit();
}
?>


کد تمیز و کمتر :

<?php

if (!condition){
    die("invalid") or exit();
}

?>


- اجتناب از نوشتن کدهای HTML در کد های PHP .

کد کثیف :

<?php

echo "<table>";
echo “<tr>”;
echo “<td>”;
echo "hello world !!!";
echo “</td>”;
echo </tr>”;
echo “</table>”;
?>


نمونه کد تمیز تر :

<html>
<body>
<table>
    <tr>
        <td><?php echo "hello world !!!"; ?></td>
    </tr>
</body>
</html>


- استفاده مناسب از SWITCH .

کد کثیف :

<?php

if ($month->number == 7) {
    $monthName = "mehr";
} elseif ($month->number == 8) {
    $monthName = "aban";
} elseif ($month->number == 9) {
    $monthName = "azar";
}

?>


نمونه کد تمیز :

<?php

switch ($month->number) {
    case 7:
        $monthName = "mehr";
        break;
    case 8:
        $monthName = "aban";
        break;
    case 9:
        $monthName = "azar";
        break;
    default :
        $monthName = "other";
}

?>


این راهنمایی ها تنها چند نمونه مختصر از کدنویسی تمیز در PHP بود.