Maison  >  Article  >  développement back-end  >  Spécifications d'écriture de code PHP

Spécifications d'écriture de code PHP

Guanhui
Guanhuiavant
2020-05-02 09:51:352425parcourir

N'ajoutez pas de contexte inutile

Si le nom de votre classe ou de votre objet a une signification spécifique, ne répétez pas le nom de la variable.

Mauvais :

<?php class Car{
    public $carMake;
    public $carModel;
    public $carColor;
    //...
    }

Bon :

<?php class Car{
    public $make;
    public $model;
    public $color;
    //...
    }

Nombre de paramètres de fonction (idéalement inférieur à 2)

Paramètres de fonction limite Le Le nombre de paramètres est très important car il rend la fonction plus facile à tester. Avec plus de trois paramètres, vous devez tester de nombreuses situations différentes avec chaque paramètre individuel.

Aucun paramètre n’est la situation idéale. Un ou deux paramètres sont acceptables, mais trois doivent être évités. Habituellement, si vous avez plus de deux paramètres, alors votre fonction essaie d'en faire trop. Sinon, la plupart du temps, un objet de niveau supérieur suffira comme paramètre (Note du traducteur : comme un tableau, un objet).

Mauvais :

<?php function createMenu($title, $body, $buttonText, $cancellable) {
    // ...}

Bon :

<?php class MenuConfig {
    public $title;
    public $body;
    public $buttonText;
    public $cancellable = false;}$config = new MenuConfig();$config->title = &#39;Foo&#39;;$config->body = &#39;Bar&#39;;$config->buttonText = &#39;Baz&#39;;$config->cancellable = true;function createMenu(MenuConfig $config) {
    // ...}

Une fonction ne doit faire qu'une seule chose

C'est la règle la plus importante en génie logiciel. Lorsque les fonctions font plus d’une chose, elles sont plus difficiles à écrire et à tester. Lorsque vous pouvez isoler une fonction dans une action, elle peut être facilement refactorisée et le code sera plus lisible.

Mauvais :

<?phpfunction emailClients($clients) {
    foreach ($clients as $client) {
        $clientRecord = $db->find($client);
        if ($clientRecord->isActive()) {
            email($client);
        }
    }}

Bon :

function emailClients($clients) {
    $activeClients = activeClients($clients);
    array_walk($activeClients, &#39;email&#39;);
}
function activeClients($clients) {
    return array_filter($clients, &#39;isClientActive&#39;);
}
function isClientActive($client) {
    $clientRecord = $db->find($client);
    return $clientRecord->isActive();
}

Utiliser les méthodes get et set

En PHP, vous pouvez définir les mots-clés publics, protégés et privés pour les méthodes , vous pouvez contrôler la visibilité des propriétés d'un objet. Cela fait partie du principe ouvert/fermé de la conception orientée objet.

Mauvais :

class BankAccount
{
    public $balance = 1000;
}
$bankAccount = new BankAccount();
// Buy shoes...
$bankAccount->balance -= 100;

Bon :

class BankAccount
{
    private $balance;
    public function __construct($balance = 1000)
    {
      $this->balance = $balance;
    }
    public function withdrawBalance($amount)
    {
        if ($amount > $this->balance) {
            throw new \Exception(&#39;Amount greater than available balance.&#39;);
        }
        $this->balance -= $amount;
    }
    public function depositBalance($amount)
    {
        $this->balance += $amount;
    }
    public function getBalance()
    {
        return $this->balance;
    }
}
$bankAccount = new BankAccount();
// Buy shoes...
$bankAccount->withdrawBalance($shoesPrice);
// Get balance
$balance = $bankAccount->getBalance();

Tutoriel recommandé : "Tutoriel PHP"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer