Maison  >  Article  >  développement back-end  >  Normes de codage PHP et suggestions pour les débutants

Normes de codage PHP et suggestions pour les débutants

小云云
小云云original
2017-12-05 11:14:211177parcourir

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 //开头

// 不结尾

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

例sublime, setting增加,"show_encoding" : true

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

例,sublime
"word_wrap": "true",
"wrap_width": 80,

  • Appuyez sur la touche 4 espaces

例,sublime
"tab_size": 4,

  • 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);

  • 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
{

}

  • 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;

  • 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...
    }
}

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

function snake_case()
{
    // coding...
}

  • 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...
    }
}

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

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

  • 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...
    }
}

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

class StudlyCaps
{
    public function doSomething($variableOne, $variableTwo)
    {
        // coding...
    }
}

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

$a = $b + $c;
$a = $b . $c;

  • 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引入类
// 空一行

  • 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
{

}

  • 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...
}

  • 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()
	{

	}
}

  • 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...
}

  • 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...
}

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;

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

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

}

  • 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...
}

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

$this->nameTest->functionOne()
               ->functionTwo()
               ->functionThree();

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

$a = [
    'aaa' => 'aaa',
    'bbb' => 'bbb'
];

  • 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";

  • 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...
  }

  • 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...
}

  • Utilisez try…catch…

try {

    // coding...

} catch (\Exception $e) {
  // coding...
}

  • 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();
      }
  }

  ...
}

  • Déclaration de copyright en haut du fichier

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

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

相关推荐:

怎样优化自己的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!

Déclaration:
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
Article précédent:Client Kafka écrit en PHPArticle suivant:Client Kafka écrit en PHP