Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Codierungsstandards und Vorschläge für Neulinge

PHP-Codierungsstandards und Vorschläge für Neulinge

小云云
小云云Original
2017-12-05 11:14:211225Durchsuche

Wenn Sie ein exzellenter Programmierer sein wollen, sind gute Codierungsstandards sehr wichtig. Wie können Sie also guten Code schreiben? In diesem Artikel geben wir Ihnen einige PHP-Codierungsstandards und Vorschläge.

Codierungsspezifikationen

  • PHP-Codedateien müssen mit dem

<?php //开头

// 不结尾

  • PHP-Codedateien müssen in UTF-8 ohne BOM codiert werden.

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

  • Die Anzahl der Zeichen pro Zeile sollte 80 Zeichen nicht überschreiten

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

  • Taste 4 Leerzeichen antippen

例,sublime
"tab_size": 4,

  • Der PHP-Code sollte Definieren Sie nur Klassen (Merkmale)/Funktionen/Konstanten/andere Vorgänge, die Nebenwirkungen erzeugen (z. B. das Generieren einer Dateiausgabe und das Ändern von .ini-Konfigurationsdateien usw.), und Sie können nur eine auswählen.

例,
a.php
class A
{

}

b.php
function demo()
{

}

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

d.php
ini_set(&#39;some_vars&#39;, value);

  • Die Benennung von Klassen/Eigenschaften/Schnittstellen muss der Namenskonvention von StudlyCaps folgen, beginnend mit einem Großbuchstaben.

class StudlyCaps
{

}

trait StudlyCaps
{

}

Interface StudlyCaps
{

}

  • Konstanten in einer Klasse müssen großgeschrieben und durch Unterstriche getrennt werden.

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

const FOO_BAR = value;

  • Der Name der Methode (in Klasse/Merkmal) muss der Namenskonvention für Groß- und Kleinschreibung im CamelCase-Stil entsprechen mit Kleinbuchstaben.

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

  • Funktionsnamen müssen der Namenskonvention für Unterstriche im Snake_case-Stil entsprechen.

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

  • Private (private) Methodennamen (in Klasse/Merkmal) müssen der Namenskonvention im _camelCase-Stil mit führenden Unterstrichen und Kleinbuchstaben entsprechen Beginnend mit dem Kamelfall.

class StudlyCaps
{
    private function _studlyCaps()
    {
        // coding...
    }
}

  • Das erste Wort des Methodennamens ist ein Verb.

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

  • Variablen müssen der Namenskonvention im CamelCase-Stil entsprechen, bei der mit Kleinbuchstaben begonnen wird.

class StudlyCaps
{
    public function doSomething()
    {
        $someVariable = &#39;demo&#39;;
        // coding...
    }
}

  • Wenn eine Methode/Funktion mehrere Parameter hat, muss zwischen

  • <🎜 ein Leerzeichen stehen >
class StudlyCaps
{
    public function doSomething($variableOne, $variableTwo)
    {
        // coding...
    }
}

  • Der Operator/Ausdruck muss ein Leerzeichen enthalten

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

  • Nach jedem Namespace-Deklarationsblock und jedem Use-Deklarationsblock muss eine Leerzeile eingefügt werden.

namespace Standard;
// 空一行
use Test\TestClass;//use引入类
// 空一行

  • Die öffnende Klammer der Klasse „{ „Muss in einer Zeile nach der Funktionsdeklaration, der schließenden Klammer, geschrieben werden „}“ muss ebenfalls in einer eigenen Zeile nach dem Funktionskörper geschrieben werden.

class StudlyCaps
{

}

  • Die öffnende Klammer { der Methode/Funktion muss in einer eigenen Zeile nach der Funktionsdeklaration geschrieben werden, und die schließende geschweifte Klammer} ist ebenfalls Es muss in einer eigenen Zeile nach dem Funktionskörper geschrieben werden.

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

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

  • Die Attribute und Methoden der Klasse müssen Zugriffsmodifikatoren (privat, geschützt und öffentlich), abstrakt und endgültig hinzufügen muss vor dem Zugriffsmodifikator deklariert werden, und static muss nach dem Zugriffsmodifikator deklariert werden.

abstract class StudlyCaps
{
	abstract public function studlyCaps();

	final public static function studlyCapsOne()
	{

	}
}

  • Nach dem Schlüsselwort der Kontrollstruktur muss ein Leerzeichen stehen, beim Aufruf einer Methode darf es jedoch nicht sein oder Funktion.

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>Die öffnende Klammer { der Kontrollstruktur muss in derselben Zeile wie die Deklaration und die schließende Klammer geschrieben werden } muss in einer eigenen Zeile nach dem Hauptteil geschrieben werden. <p></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...
}

  • Nach der öffnenden linken Klammer und vor der schließenden rechten Klammer der Kontrollstruktur dürfen keine Leerzeichen stehen.

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

Codierungsvorschläge

  • SQL ist zu lang

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

  • if und andere Kontrollstrukturbedingungen sind zu lang

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

}

  • Methode Oder die Funktionsparameter sind mehr als drei Zeilenumbrüche

public function tooLangFunction(
      $valueOne   = '',
      $valueTwo   = '',
      $valueThree = '',
      $valueFour  = '',
      $valueFive  = '',
      $valueSix   = '')
{
    //coding...
}

  • Die Kettenoperation beträgt mehr als zwei

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

  • Verwenden Sie nach Array php5.4 []

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

  • Einfache Anführungszeichen Mehrere Anführungszeichen

    • Keine Variablen in der Zeichenfolge, einfache Anführungszeichen

    • Es gibt Variablen in der Zeichenfolge, doppelte Anführungszeichen

$str = 'str';
$arg = "$str";

  • Deklarieren Sie eine Klasse, Methode oder Funktion und fügen Sie eine Beschreibung und ein Attribut hinzu Beschreibung & Autor

/**
 * 类描述
 *
 * 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...
  }

  • API-Methode liefert Testbeispielbeispiel

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

  • Verwenden Sie try…catch…

try {

    // coding...

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

  • Kontinuierlich mehrere Methoden aufrufen ( mehr als 3) mit 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();
      }
  }

  ...
}

  • Urheberrechtserklärung oben in der Datei

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

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

相关推荐:

怎样优化自己的JavaScript代码

PHP 代码的复用简单教程

PHP 代码规范

Das obige ist der detaillierte Inhalt vonPHP-Codierungsstandards und Vorschläge für Neulinge. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn