Normes de codage PHP et suggestions pour les débutants

小云云
Libérer: 2023-03-17 19:08:01
original
1210 Les gens l'ont consulté

Si vous voulez être un excellent programmeur, de bonnes normes de codage sont très importantes. Alors, comment pouvez-vous écrire du bon code ? Dans cet article, nous vous donnerons quelques normes et suggestions de codage PHP.

Spécifications de codage

  • Les fichiers de code PHP doivent commencer par la balise

<?php //开头

// 不结尾
Copier après la connexion

  • Les fichiers de code PHP doivent être encodés en UTF-8 sans BOM.

例sublime, setting增加,"show_encoding" : true
Copier après la connexion

  • Le nombre de caractères par ligne ne doit pas dépasser 80 caractères

例,sublime
"word_wrap": "true",
"wrap_width": 80,
Copier après la connexion

  • Appuyez sur la touche 4 espaces

例,sublime
"tab_size": 4,
Copier après la connexion

  • Le code PHP devrait Définissez uniquement les classes (traits)/fonctions/constantes/autres opérations qui produiront des effets secondaires (tels que la génération d'une sortie de fichier et la modification des fichiers de configuration .ini, etc.), et vous ne pouvez en choisir qu'une.

例,
a.php
class A
{

}

b.php
function demo()
{

}

c.php
define(&#39;A&#39;, value);

d.php
ini_set(&#39;some_vars&#39;, value);
Copier après la connexion

  • La dénomination des classes/traits/interfaces doit suivre la convention de dénomination des cas de chameau des StudlyCaps en commençant par un cas majuscule.

class StudlyCaps
{

}

trait StudlyCaps
{

}

Interface StudlyCaps
{

}
Copier après la connexion

  • Les constantes d'une classe doivent être en majuscules et séparées par des traits de soulignement.

define(&#39;FOO_BAR&#39;, &#39;something more&#39;);

const FOO_BAR = value;
Copier après la connexion

  • Le nom de la méthode (dans la classe/le trait) doit être conforme à la convention de dénomination des cas de chameau de style camelCase commençant avec des minuscules.

class StudlyCaps
{
    public function studlyCaps()
    {
        // coding...
    }
}
Copier après la connexion

  • Les noms de fonctions doivent être conformes à la convention de dénomination des traits de soulignement de style Snake_case.

function snake_case()
{
    // coding...
}
Copier après la connexion

  • Les noms de méthodes privées (privées) (dans la classe/le trait) doivent être conformes à la convention de dénomination du trait de soulignement minuscule de style _camelCase à commencer par le cas de chameau.

class StudlyCaps
{
    private function _studlyCaps()
    {
        // coding...
    }
}
Copier après la connexion

  • Le premier mot du nom de la méthode est un verbe.

class StudlyCaps
{
    public function doSomething()
    {
        // coding...
    }
}
Copier après la connexion

  • Les variables doivent être conformes à la convention de dénomination de style camelCase de la casse chameau commençant par une minuscule.

class StudlyCaps
{
    public function doSomething()
    {
        $someVariable = &#39;demo&#39;;
        // coding...
    }
}
Copier après la connexion

  • Lorsqu'une méthode/fonction a plusieurs paramètres, il doit y avoir un espace entre

class StudlyCaps
{
    public function doSomething($variableOne, $variableTwo)
    {
        // coding...
    }
}
Copier après la connexion

  • L'opérateur/expression doit avoir un espace

$a = $b + $c;
$a = $b . $c;
Copier après la connexion

  • Une ligne vide doit être insérée après chaque bloc de déclaration d'espace de noms et utiliser le bloc de déclaration.

namespace Standard;
// 空一行
use Test\TestClass;//use引入类
// 空一行
Copier après la connexion

  • L'accolade ouvrante de la classe "{ "Doit être écrite sur une ligne après la déclaration de la fonction, l'accolade fermante "} " doit également être écrit sur sa propre ligne après le corps de la fonction.

class StudlyCaps
{

}
Copier après la connexion

  • L'accolade ouvrante { de la méthode/fonction doit être écrite sur sa propre ligne après la déclaration de la fonction, et le accolade fermante} est également Il doit être écrit sur sa propre ligne après le corps de la fonction.

class StudlyCaps
{
    public function studlyCaps()
    {
        // coding...
    }
}

function snake_case()
{
    // coding...
}
Copier après la connexion

  • Les attributs et méthodes de la classe doivent ajouter des modificateurs d'accès (privé, protégé et public), le résumé et le final doivent être déclaré avant le modificateur d'accès, et static doit être déclaré après le modificateur d'accès.

abstract class StudlyCaps
{
	abstract public function studlyCaps();

	final public static function studlyCapsOne()
	{

	}
}
Copier après la connexion

  • Il doit y avoir un espace après le mot clé de la structure de contrôle, mais il ne doit pas y en avoir lors de l'appel d'une méthode ou fonction.

if ($valueOne === $valueTwo) {
  // code...
}

switch ($valueThree) {
  case &#39;value&#39;:
    // code...
    break;

  default:
    // code...
    break;
}

do {
  // code...
} while ($valueFour <= 10);

while ($valueFive <= 10) {
  // code...
}

for ($i = 0; $i < $valueSix; $i++) {
  // code...
}

$demo = new Demo()
$demo->doSomething();

do_something();</p>
<p> </p>
<ul class=" list-paddingleft-2"><li><p>L'accolade ouvrante { de la structure de contrôle doit être écrite sur la même ligne que la déclaration, et l'accolade fermante } doit être écrit sur une ligne distincte après le corps principal. </p></li></ul>
<pre class="brush:php;toolbar:false">if ($valueOne === $valueTwo) {
  // code...
}

switch ($valueThree) {
  case 'value':
    // code...
    break;

  default:
    // code...
    break;
}

do {
  // code...
} while ($valueFour <= 10);

while ($valueFive <= 10) {
  // code...
}

for ($i = 0; $i < $valueSix; $i++) {
  // code...
}
Copier après la connexion

  • Il ne doit y avoir aucun espace après la parenthèse gauche ouvrante et avant la parenthèse fermante droite de la structure de contrôle.

if ($valueOne === $valueTwo) {// 控制结构(右边和)左边不加空格
  // code...
}
Copier après la connexion

Suggestions de codage

  • sql est trop long

// heredoc语法
$sql = <<<SQL
SELECT delivery_id
FROM d_test
WHERE delivery_id
IN (123,234)
GROUP BY delivery_id
HAVING SUM(send_number) <= 0;
SQL;
Copier après la connexion

  • si et d'autres conditions de structure de contrôle sont trop longues

if ($a > 0
    && $b > 0
    && $c > 0
    && $d > 0
    && $e > 0) {

}
Copier après la connexion

  • méthode Ou les paramètres de la fonction sont supérieurs à trois nouvelles lignes

public function tooLangFunction(
      $valueOne   = '',
      $valueTwo   = '',
      $valueThree = '',
      $valueFour  = '',
      $valueFive  = '',
      $valueSix   = '')
{
    //coding...
}
Copier après la connexion

  • L'opération en chaîne est supérieure à deux

$this->nameTest->functionOne()
               ->functionTwo()
               ->functionThree();
Copier après la connexion

  • Après le tableau php5.4, utilisez []

$a = [
    'aaa' => 'aaa',
    'bbb' => 'bbb'
];
Copier après la connexion

  • Guillemets simples Guillemets multiples

    • Aucune variable dans la chaîne, guillemets simples

    • Il y a variables dans la chaîne, guillemets doubles

$str = 'str';
$arg = "$str";
Copier après la connexion

  • Déclarer une classe, une méthode ou une fonction et ajouter une description et un attribut description et auteur

/**
 * 类描述
 *
 * desc
 */
class StandardExample
{
  /**
   *  常量描述.
   *
   * @var string
   */
  const THIS_IS_A_CONST = '';

  /**
   * 属性描述.
   *
   * @var string
   */
  public $nameTest = '';

  /**
   * 构造函数.
   *
   * 构造函数描述
   * @author name <email>
   * @param  string $value 形参名称/描述
   * @return 返回值类型        返回值描述
   * 返回值类型:string,array,object,mixed(多种,不确定的),void(无返回值)
   */
  public function __construct($value = '')
  {
    // coding...
  }
Copier après la connexion

  • la méthode API fournit un exemple d'échantillon de test

/**
 * 成员方法名称.
 *
 * 成员方法描述
 *
 * @param  string $value 形参名称/描述
 *
 * @example domain/api/controller/action?argu1=111&argu2=222
 */
public function testFunction($value = '')
{
    // code...
}
Copier après la connexion

  • Utilisez try…catch…

try {

    // coding...

} catch (\Exception $e) {
  // coding...
}
Copier après la connexion

  • Appeler continuellement plusieurs méthodes ( plus de 3) en utilisant foreach

// 改写doSome为doSomething
class StandardExample
{
  /**
   * 方法列表
   *
   * @var array
   */
  private $_functionList = [];

  public function __construct($functionList = array())
  {
    $this->_functionList = $value;
  }

  public function doSome()
  {
    $this->functionOne();
    $this->functionTwo();
    $this->functionThree();
    $this->functionFour();
  }

  public function doSomething()
  {
      foreach($this->_functionList as $function) {
          $this->$function();
      }
  }

  ...
}
Copier après la connexion

  • Déclaration de copyright en haut du fichier

// +----------------------------------------------------------------------
// | Company Name  xx服务
// +----------------------------------------------------------------------
// | Copyright (c) 2017 http://domain All rights reserved.
// +----------------------------------------------------------------------
// | Author: name <email>
// +----------------------------------------------------------------------
Copier après la connexion

以上内容就给新手程序员的一些编写代码的规范及建议,希望能帮助到大家。

相关推荐:

怎样优化自己的JavaScript代码

PHP 代码的复用简单教程

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!