Heim > php教程 > php手册 > Hauptteil

PHP PSR-Spezifikation Chinesische Version_php-Grundlagen

WBOY
Freigeben: 2016-05-16 09:00:05
Original
1987 Leute haben es durchsucht

Adresse des Dokumentenlagers: https://github.com/hfcorriez/fig-standards

PSR-Spezifikation, chinesische Version

Warum die Spezifikation

Der Auszug übersetzt einen offiziellen Satz. Diese Organisation möchte unsere Codeprojekte diskutieren Gemeinsamkeiten bei der Suche nach einem kollaborativen Programmieransatz.

Das erinnert mich an diese Passage in einem Artikel „Warum Google strenge Codestandards erzwingt“:

Code kopieren Der Code lautet wie folgt:

In Google kann ich jeden Code anzeigen, alle Google-Codebibliotheken eingeben, ich habe die Berechtigung, sie anzuzeigen. Tatsächlich verfügen nur sehr wenige Menschen über diese Art von Autorität. Was mich jedoch überraschte, war, dass so viele Codierungsstandards – Einrückung, Benennung, Dateistruktur, Kommentarstil – es mir überraschend einfach machten, jeden Codeabschnitt zu lesen und ihn leicht zu verstehen. Das schockierte mich – denn ich dachte, diese Normen seien trivial. Sie hätten unmöglich so viel tun können – und doch haben sie es getan. Wenn Sie feststellen, dass Sie einen Code verstehen können, indem Sie sich nur die grundlegende Syntaxstruktur des Programms ansehen, ist diese Art der Zeitersparnis nur schockierend!


Liebe Leserinnen und Leser, mehr muss ich zu den Regelungen nicht sagen.

Schreiben Sie es am Ende
Angaben sind nicht verpflichtend. Natürlich können Sie auch Ihren eigenen Weg wählen, aber die Verwendung von Vorgaben erleichtert Ihnen die Zusammenarbeit. Heutzutage ist das Schreiben verschiedener moderner Anwendungen nicht mehr wie früher. Eine Anwendung besteht in der Regel aus vielen Modulen. Wenn die Spezifikationen nicht implementiert werden, wird das Verständnis und die Kommunikation des gesamten Projekts nur noch komplizierter.

Wenn Sie Spezifikationen verwenden, liegen die Vorteile für das Projekt und Sie selbst natürlich auf der Hand.

Alle akzeptierten Spezifikationsreferenzen: https://github.com/hfcorriez/fig-standards/tree/zh_CN/%E6%8E%A5%E5%8F%97

Codestilspezifikation

Der Zweck dieses Leitfadens besteht darin, die kognitiven Unterschiede zwischen verschiedenen Entwicklern beim Durchsuchen des Codes zu verringern. Dies listet eine Reihe allgemeiner Regeln für die Formatierung von PHP-Code auf.
Die Gemeinsamkeiten der einzelnen Mitgliedsprojekte bilden die Stilregeln dieses Artikels. Wenn verschiedene Entwickler an verschiedenen Projekten zusammenarbeiten, wird für diese verschiedenen Projekte ein gemeinsamer Standard verwendet. Daher liegt der Nutzen dieses Leitfadens nicht in den Regeln selbst, sondern darin, sie weiterzugeben.
Die charakteristischen Schlüsselwörter „MUST“, „MUST NOT“, „REQUIRED“, „SHALL“, „SHALL NOT“ in RFC 2119, die Wörter „SHOULD“, „SHOULD NOT“, „RECOMMENDED“, „MAY“ und In diesem Dokument wird „OPTIONAL“ verwendet.

1. Gliederung

Der Code muss PSR-1 entsprechen.

Der Code muss eine Einrückung von 4 Leerzeichen und keine Tabulatoren enthalten.
Es sollte keine feste Begrenzung für die Länge einer Codezeile geben; die weiche Begrenzung muss 120 Zeichen betragen; sie sollte auch 80 Zeichen oder weniger betragen.
Unter der Namespace-Deklaration muss eine Leerzeile stehen, und unter dem Verwendungsdeklarationsblock muss sich auch eine Leerzeile befinden.
Die linke geschweifte Klammer der Klasse muss in der nächsten Zeile und die rechte geschweifte Klammer muss in der nächsten Zeile des Klassenkörpers platziert werden.
Die linke geschweifte Klammer einer Methode muss in der nächsten Zeile platziert werden, und die rechte geschweifte Klammer muss unter dem Methodenkörper platziert werden.
Alle Eigenschaften und Methoden müssen über Sichtbarkeitsdeklarationen (Anmerkung des Übersetzers: Öffentlich, Schützen, Privat) verfügen; abstrakte und endgültige Deklarationen müssen vor Sichtbarkeit erfolgen; statische Deklarationen müssen nach Sichtbarkeit erfolgen.
Nach Schlüsselwörtern von Kontrollstrukturen muss ein Leerzeichen stehen; Methoden und Funktionen sind nicht zulässig.
Die linke geschweifte Klammer der Kontrollstruktur muss auf derselben Zeile platziert werden, und die rechte geschweifte Klammer muss auf der nächsten Zeile des Kontrollkörpers platziert werden.
Es dürfen keine Leerzeichen nach der linken Klammer der Kontrollstruktur und keine Leerzeichen vor der rechten Klammer stehen.

1.1. Beispiel
Dieses Beispiel enthält eine einfache Darstellung einiger der oben genannten Regeln:

Code kopieren Der Code lautet wie folgt:

Namespace VendorPackage;
FooInterface verwenden;
BarClass als Bar verwenden;
OtherVendorOtherPackageBazClass verwenden;

Klasse Foo erweitert Bar implementiert FooInterface
{
öffentliche Funktion sampleFunction($a, $b = null)
{
if ($a === $b) {
bar ();
} elseif ($a > $b) {
                                                                              );
}
}

final public static function bar() {

// Methodenkörper
}
}


2. Zusammenfassung2.1 Grundlegende Codespezifikationen

Der Code muss allen Regeln von PSR-1 entsprechen.

2.2 Dateien

Alle PHP-Dateien müssen Unix LF (Zeilenvorschub) als Zeilenabschlusszeichen verwenden.


Alle PHP-Dateien müssen mit einer Leerzeile enden.

Dateiabschluss-Tag für reinen PHP-Code?>Muss weggelassen werden

2.3. Zeile

Es kann keine feste Begrenzung der Zeilenlänge geben.


Die Soft-Grenze für die Zeilenlänge muss 120 Zeichen betragen; für die Soft-Grenze muss die automatische Stilprüfung eine Warnung, aber keine Fehlermeldung ausgeben.

Die tatsächliche Zeilenlänge sollte 80 Zeichen nicht überschreiten; längere Zeilen sollten in mehrere aufeinanderfolgende Zeilen mit nicht mehr als 80 Zeichen aufgeteilt werden.

Nach nicht leeren Zeilen dürfen keine Leerzeichen stehen.

Leerzeilen können verwendet werden, um die Lesbarkeit zu verbessern und zusammengehörige Codeblöcke zu unterscheiden.

Es sollte nicht mehr als eine Aussage pro Zeile geben.

2.4. Einrückung

Der Code muss 4 Leerzeichen für die Einrückung verwenden und Tabulatorzeichen können nicht als Einrückung verwendet werden.


Hinweis: Die ausschließliche Verwendung von Leerzeichen, nicht gemischt mit Tabulatoren, trägt dazu bei, einige Probleme bei Codeunterschieden, Patches, Verlauf und Kommentaren zu vermeiden. Durch die Verwendung von Leerzeichen ist es auch sehr einfach, subtile Einrückungen anzupassen, um die Ausrichtung zwischen Zeilen zu verbessern.

2.5. Schlüsselwörter und Wahr/Falsch/Null

PHP-Schlüsselwörter müssen in Kleinbuchstaben geschrieben werden.


PHP-Konstanten true, false und null müssen Kleinbuchstaben sein.

3. Namespace- und Verwendungsdeklarationen

Falls vorhanden, muss nach der Namespace-Deklaration eine Leerzeile stehen.


Falls vorhanden, müssen alle Use-Anweisungen unterhalb der Namespace-Anweisung platziert werden.

Ein use-Schlüsselwort darf nur in einer Deklaration verwendet werden.

Nach dem Verwendungsdeklarationsblock muss eine Leerzeile stehen.

Beispiel:

Namespace VendorPackage ;

FooClass verwenden;

BarClass als Bar verwenden;

OtherVendorOtherPackageBazClass verwenden;

// ... zusätzlicher PHP-Code ...


4. Klassen, Eigenschaften und Methoden

Der Begriff „Klasse“ bezieht sich auf alle Klassen, Schnittstellen und Merkmale.


4.1. Erweiterung und Vererbung

Die Schlüsselwörter „extends“ und „implements“ einer Klasse müssen in derselben Zeile wie der Klassenname stehen.


Die linke geschweifte Klammer der Klasse muss in einer eigenen Zeile darunter platziert werden; die rechte geschweifte Klammer muss in einer eigenen Zeile nach dem Klassenkörper platziert werden.

Namespace VendorPackage ;
verwende FooClass;
verwende BarClass als Bar;
verwende OtherVendorOtherPackageBazClass;

Klasse ClassName erweitert ParentClass implementiert ArrayAccess, Countable

{

// Konstanten, Eigenschaften, Methoden
}


implementiert, dass eine Liste mit einer Einrückung in mehrere aufeinanderfolgende Zeilen aufgeteilt werden kann. Wenn Sie dies tun, muss das erste Element in der Liste in der nächsten Zeile platziert werden und es darf nur eine Schnittstelle pro Zeile vorhanden sein.

Namespace VendorPackage ;

FooClass verwenden;

BarClass als Bar verwenden;

OtherVendorOtherPackageBazClass verwenden;

class ClassName erweitert ParentClass-Implementierungen

ArrayAccess,

Countable,
Serializable
{
// Konstanten, Eigenschaften, Methoden
}

4.2. Attribute
Alle Attribute müssen Sichtbarkeit deklarieren.

Das Schlüsselwort var kann nicht zum Deklarieren von Attributen verwendet werden.

Eine Anweisung kann nicht mehrere Attribute deklarieren.

Eigenschaftsnamen sollte kein einzelner Unterstrich vorangestellt werden, um die geschützte oder private Sichtbarkeit anzuzeigen.

Eine Eigentumsdeklaration sollte so aussehen.

Code kopieren Der Code lautet wie folgt:

Namespace VendorPackage ;

class ClassName
{
public $foo = null;
}

4.3. Methoden
Alle Methoden müssen Sichtbarkeit deklarieren.

Methodennamen sollten nicht nur einen einzelnen Unterstrich verwenden, um auf geschützte oder private Sichtbarkeit hinzuweisen.

Dem Methodennamen darf nach der Deklaration kein Leerzeichen folgen. Die öffnende geschweifte Klammer muss in einer eigenen Zeile darunter platziert werden, und die schließende geschweifte Klammer muss in einer eigenen Zeile unterhalb des Methodenkörpers platziert werden. Nach der linken Klammer und vor der rechten Klammer dürfen keine Leerzeichen stehen.

Eine Methodendefinition sollte wie folgt aussehen. Beachten Sie die Klammern, Kommas, Leerzeichen und geschweiften Klammern:

Code kopieren Der Code lautet wie folgt:

Namespace VendorPackage ;

class ClassName
{
public function fooBarBaz($arg1, &$arg2, $arg3 = [])
{
// Methodenkörper
}
}

4.4. Methodenparameter
In der Parameterliste darf kein Leerzeichen vor dem Komma stehen und es muss ein Leerzeichen nach dem Komma stehen.

Parameter mit Standardwerten in Methoden müssen am Ende der Parameterliste platziert werden.

Code kopieren Der Code lautet wie folgt:

Namespace VendorPackage ;

class ClassName
{
public function foo($arg1, &$arg2, $arg3 = [])
{
// Methodenkörper
}
}

Die Parameterliste kann mit einer Einrückung in mehrere aufeinanderfolgende Zeilen unterteilt werden. Wenn Sie dies tun, muss das erste Element in der Liste in der nächsten Zeile platziert werden und es darf nur ein Parameter in jeder Zeile platziert werden.

Wenn die Parameterliste in mehrere Zeilen unterteilt ist, müssen die rechte Klammer und die linke geschweifte Klammer mit einem Leerzeichen zusammengefügt werden, um eine eigene Zeile zu bilden.

Code kopieren Der Code lautet wie folgt:

Namespace VendorPackage ;

class ClassName
{
public function aVeryLongMethodName(
ClassTypeHint $arg1,
&$arg2,
) array $arg3 = []
) {
// Methodenkörper
}
}

4.5. Zusammenfassung, endgültige und statische Erklärung
Wenn vorhanden, müssen abstrakte und endgültige Erklärungen vor der Sichtbarkeitserklärung platziert werden.

Falls vorhanden, muss auf eine statische Deklaration eine Sichtbarkeitsdeklaration folgen.

Code kopieren Der Code lautet wie folgt:

Namespace VendorPackage ;

abstract class ClassName
{
protected static $foo;

abstrakte geschützte Funktion zim();

final public static function bar()
{
// Methodenkörper
}
}

4.6. Aufrufen von Methoden und Funktionen
Um eine Methode oder Funktion aufzurufen, darf zwischen dem Methoden- oder Funktionsnamen und der linken Klammer kein Leerzeichen stehen, kein Leerzeichen nach der linken Klammer und kein Leerzeichen vor der rechten Klammer. In der Funktionsliste darf vor dem Komma kein Leerzeichen und nach dem Komma muss ein Leerzeichen stehen.

bar();
$foo->bar($arg1);
Foo::bar($arg2, $arg3);
Die Parameterliste kann werden mit einem Einzug in nachfolgende Zeilen aufgeteilt. Wenn Sie dies tun, muss das erste Element in der Liste in der nächsten Zeile platziert werden und jede Zeile muss genau ein Argument haben.

Code kopieren Der Code lautet wie folgt:

$foo->bar(
$longArgument,
$longerArgument,
$muchLongerArgument
);

5. 제어 구조
제어 구조의 스타일 규칙은 다음과 같이 요약됩니다.

제어 구조 키워드 뒤에 공백이 있어야 합니다
왼쪽 괄호 뒤에 공백이 없어야 합니다
오른쪽 괄호 앞에 공백이 없어야 합니다
오른쪽 괄호와 오른쪽 괄호 사이에 공백이 있어야 합니다 왼쪽 중괄호
코드 본문은 한 번 들여쓰기해야 합니다.
닫는 중괄호는 본문 아래 한 줄에 있어야 합니다.
각 구조체의 본문은 중괄호로 묶어야 합니다. 이 구조는 더욱 표준화되어 보이고 새 줄을 추가할 때 오류가 발생할 가능성을 줄여줍니다.

5.1. if, elseif, else

if 구조는 다음과 같아야 합니다. 괄호, 공백 및 중괄호 배치에 주의하세요. else 및 elseif는 이전 본문의 닫는 중괄호와 같은 줄에 있습니다.

코드 복사 코드는 다음과 같습니다.

if ( $expr1) {
// if body
} elseif ($expr2) {
// elseif body
} else {
// else body;
}

모든 제어 키워드를 한 단어로 유지하려면 else if 대신 elseif 키워드를 사용해야 합니다.

5.2.스위치, 케이스

스위치 구조는 다음과 같아야 합니다. 괄호, 공백, 중괄호에 주의하세요. Case 문은 스위치에서 들여쓰기되어야 하며, break 키워드(또는 다른 break 키워드)는 Case 본문과 동일한 수준에서 들여쓰기되어야 합니다. 비어 있지 않은 케이스 본문이 쓰러지면 // no break와 같은 주석이 있어야 합니다.

코드 복사 코드는 다음과 같습니다.

스위치( $expr) {
사례 0:
echo '첫 번째 사례, 중단됨';
break;
사례 1:
echo '두 번째 사례, 중단됨';
// 중단 없음
사례 2:
사례 3:
사례 4:
echo '세 번째 사례, 중단 대신 반환';
return;
기본값:
echo '기본 사례';
break;
}

5.3 while, do while
while 문은 다음과 같아야 합니다. 괄호, 공백, 중괄호의 배치에 주의하세요.
코드 복사 코드는 다음과 같습니다.

while( $expr) {
// 구조체 본문
}

마찬가지로 do while 문은 다음과 같아야 합니다. 괄호, 공백, 중괄호의 배치에 주의하세요.
코드 복사 코드는 다음과 같습니다.

do {
// 구조체 본문;
} while ($expr);

5.4.for
for 문은 다음과 같아야 합니다. 괄호, 공백, 중괄호의 배치에 주의하세요.

코드 복사 코드는 다음과 같습니다.

for ( $i = 0; $i < $i++) {
// 본문
}

5.5.포리치

foreach 문은 다음과 같아야 합니다. 괄호, 공백, 중괄호의 배치에 주의하세요.

코드 복사 코드는 다음과 같습니다.

foreach( $iterable as $key => $value) {
// foreach body
}

5.6.try, catch
try catch 문은 다음과 같아야 합니다. 괄호, 공백, 중괄호의 배치에 주의하세요.
코드 복사 코드는 다음과 같습니다.

try {
// try body
} catch(FirstExceptionType $e) {
// catch body
} catch(OtherExceptionType $e) {
// 본문 잡기
}

6. 폐쇄

클로저 선언 시 함수 키워드 뒤에 공백이 있어야 하며, 사용 전에도 공백이 필요합니다.

여는 중괄호는 같은 줄에 있어야 하고, 닫는 중괄호는 본문의 다음 줄에 있어야 합니다.

매개변수 목록, 변수 목록의 왼쪽 괄호 뒤에는 공백이 없어야 하며, 오른쪽 괄호 앞에는 공백이 없어야 합니다.

매개변수 목록과 변수 목록에서는 쉼표 앞에는 공백이 없어야 하며, 쉼표 뒤에는 공백이 있어야 합니다.

기본값이 있는 클로저의 매개변수는 매개변수 목록 뒤에 배치되어야 합니다.

클로저 선언은 다음과 같아야 합니다. 괄호, 공백, 중괄호의 배치에 주의하세요.

코드 복사 코드는 다음과 같습니다.

$closureWithArgs = 함수( $arg1, $arg2) {
// 본문
};
$closureWithArgsAndVars = 함수($arg1, $arg2) 사용($var1, $var2) {
// 본문
};

매개변수 및 변수 목록은 한 번의 들여쓰기로 여러 개의 후속 줄로 분할할 수 있습니다. 이렇게 하면 목록의 첫 번째 항목이 다음 줄에 배치되어야 하고, 한 줄에 하나의 매개변수나 변수만 배치되어야 합니다.

최종 목록(매개변수 또는 변수)이 여러 줄로 나누어질 때 오른쪽 괄호와 왼쪽 중괄호는 공백을 두고 각각의 줄에 배치되어야 합니다.

다음은 여러 줄로 분할된 매개변수 및 변수 목록의 예입니다.

코드 복사 코드는 다음과 같습니다.

$longArgs_noVars = 함수(
$longArgument,
$longerArgument,
$muchLongerArgument
) {
// 본문
};

$noArgs_longVars = 함수() 사용(
$longVar1,
$longerVar2,
$muchLongerVar3
) {
// 본문
};

$longArgs_longVars = 함수(
$longArgument,
$longerArgument,
$muchLongerArgument
) 사용(
$longVar1,
$longerVar2,
$muchLongerVar 3
) {
// 본문
};

$longArgs_shortVars = 함수(
$longArgument,
$longerArgument,
$muchLongerArgument
) 사용($var1) {
// 본문
};

$shortArgs_longVars = 함수 ($arg) 사용 (
$longVar1,
$longerVar2,
$muchLongerVar3
) {
// 본문
};


함수나 메소드에서 클로저가 매개변수로 호출되는 경우 위의 형식 지정 규칙도 적용됩니다.
코드 복사 코드는 다음과 같습니다.

$foo -> bar(
$arg1,
함수 ($arg2) 사용 ($var1) {
// 본문
},
$arg3
);

7. 结论
在该指南中有很多风格的元素和做法有意被忽略掉。这些包括但不局限于:

全局变量和全局常量的声明

方法声明

操作符和赋值

行间对齐

注释和文档块

类名给你前缀和后缀

最佳实践

以后的建议可以修改和扩展该指南以满足这些或其他风格的元素和实践。

附录A 调查
为了写这个风格指南,我们采用了调查个项目以确定共同的做法。这个调查在这里供他人查看。

A.1. 调查数据
url,http://www.horde.org/apps/horde/docs/CODING_STANDARDS,http://pear.php.net/manual/en/standards.php,http://solarphp.com/manual/appendix-standards.style,http://framework.zend.com/manual/en/coding-standard.html,http://symfony.com/doc/2.0/contributing/code/standards.html,http://www.ppi.io/docs/coding-standards.html,https://github.com/ezsystems/ezp-next/wiki/codingstandards,http://book.cakephp.org/2.0/en/contributing/cakephp-coding-conventions.html,https://github.com/UnionOfRAD/lithium/wiki/Spec%3A-Coding,http://drupal.org/coding-standards,http://code.google.com/p/sabredav/,http://area51.phpbb.com/docs/31x/coding-guidelines.html,https://docs.google.com/a/zikula.org/document/edit?authkey=CPCU0Us&hgd=1&id=1fcqb93Sn-hR9c0mkN6m_tyWnmEvoswKBtSc0tKkZmJA,http://www.chisimba.com,n/a,https://github.com/Respect/project-info/blob/master/coding-standards-sample.php,n/a,Object Calisthenics for PHP,http://doc.nette.org/en/coding-standard,http://flow3.typo3.org,https://github.com/propelorm/Propel2/wiki/Coding-Standards,http://developer.joomla.org/coding-standards.html
voting,yes,yes,yes,yes,yes,yes,yes,yes,yes,yes,yes,yes,yes,yes,yes,no,no,no,?,yes,no,yes
indent_type,4,4,4,4,4,tab,4,tab,tab,2,4,tab,4,4,4,4,4,4,tab,tab,4,tab
line_length_limit_soft,75,75,75,75,no,85,120,120,80,80,80,no,100,80,80,?,?,120,80,120,no,150
line_length_limit_hard,85,85,85,85,no,no,no,no,100,?,no,no,no,100,100,?,120,120,no,no,no,no
class_names,studly,studly,studly,studly,studly,studly,studly,studly,studly,studly,studly,lower_under,studly,lower,studly,studly,studly,studly,?,studly,studly,studly
class_brace_line,next,next,next,next,next,same,next,same,same,same,same,next,next,next,next,next,next,next,next,same,next,next
constant_names,upper,upper,upper,upper,upper,upper,upper,upper,upper,upper,upper,upper,upper,upper,upper,upper,upper,upper,upper,upper,upper,upper
true_false_null,lower,lower,lower,lower,lower,lower,lower,lower,lower,upper,lower,lower,lower,upper,lower,lower,lower,lower,lower,upper,lower,lower
method_names,camel,camel,camel,camel,camel,camel,camel,camel,camel,camel,camel,lower_under,camel,camel,camel,camel,camel,camel,camel,camel,camel,camel
method_brace_line,next,next,next,next,next,same,next,same,same,same,same,next,next,same,next,next,next,next,next,same,next,next
control_brace_line,same,same,same,same,same,same,next,same,same,same,same,next,same,same,next,same,same,same,same,same,same,next
control_space_after,yes,yes,yes,yes,yes,no,yes,yes,yes,yes,no,yes,yes,yes,yes,yes,yes,yes,yes,yes,yes,yes
always_use_control_braces,yes,yes,yes,yes,yes,yes,no,yes,yes,yes,no,yes,yes,yes,yes,no,yes,yes,yes,yes,yes,yes
else_elseif_line,same,same,same,same,same,same,next,same,same,next,same,next,same,next,next,same,same,same,same,same,same,next
case_break_indent_from_switch,0/1,0/1,0/1,1/2,1/2,1/2,1/2,1/1,1/1,1/2,1/2,1/1,1/2,1/2,1/2,1/2,1/2,1/2,0/1,1/1,1/2,1/2
function_space_after,no,no,no,no,no,no,no,no,no,no,no,no,no,no,no,no,no,no,no,no,no,no
closing_php_tag_required,no,no,no,no,no,no,no,no,yes,no,no,no,no,yes,no,no,no,no,no,yes,no,no
line_endings,LF,LF,LF,LF,LF,LF,LF,LF,?,LF,?,LF,LF,LF,LF,?,,LF,?,LF,LF,LF
static_or_visibility_first,static,?,static,either,either,either,visibility,visibility,visibility,either,static,either,?,visibility,?,?,either,either,visibility,visibility,static,?
control_space_parens,no,no,no,no,no,no,yes,no,no,no,no,no,no,yes,?,no,no,no,no,no,no,no
blank_line_after_php,no,no,no,no,yes,no,no,no,no,yes,yes,no,no,yes,?,yes,yes,no,yes,no,yes,no
class_method_control_brace,next/next/same,next/next/same,next/next/same,next/next/same,next/next/same,same/same/same,next/next/next,same/same/same,same/same/same,same/same/same,same/same/same,next/next/next,next/next/same,next/same/same,next/next/next,next/next/same,next/next/same,next/next/same,next/next/same,same/same/same,next/next/same,next/next/next
A.2. 调查说明
indent_type: 缩进类型。 tab = "使用制表符",2 or 4 = "空格数量"

line_length_limit_soft: 行长度的“软”限制,用字符。 ? = 不表示或者数字 no 意为不限制.

line_length_limit_hard: 行长度的"硬"限制,用字符。 ? = 不表示或者数字, no 意为不限制.

class_names: 类名如何命名 lower = 只是小写, lower_under = 小写加下划线, studly = 骆驼型.

class_brace_line: 클래스의 왼쪽 중괄호를 같은 줄에 배치해야 할까요, 아니면 다음 줄에 배치해야 할까요?

constant_names: 클래스 상수의 이름을 어떻게 지정하나요? upper = 대문자와 밑줄 구분 기호.

true_false_null: 모두 문자로 쓰나요, 아니면 모두 대문자로 쓰나요?

method_names: 메소드 이름을 어떻게 지정하나요? camel = 카멜 표기법, lower_under = 소문자 + 밑줄 구분 기호.

method_brace_line: 메소드의 여는 중괄호가 같은 줄에 있나요, 아니면 다음 줄에 있나요?

control_brace_line: 제어 구조의 왼쪽 중괄호가 같은 줄에 있나요, 아니면 다음 줄에 있나요?

control_space_after: 제어 구조 키워드 뒤에 공백이 있나요?

always_use_control_braces: 제어 구조에 항상 중괄호를 사용하시겠습니까?

else_elseif_line: else와 elseif를 사용할 때 같은 줄에 배치해야 하나요, 아니면 다음 줄에 배치해야 하나요?

case_break_indent_from_switch: switch 문에서 case 및 break를 몇 번 들여썼나요?

function_space_after: 함수 이름과 함수 호출의 왼쪽 대괄호에 공백이 있나요?

closing_php_tag_required: 순수 PHP 파일이라면 태그를 닫아야 할까요?>필수인가요?

line_endings: 어떤 줄 끝을 사용해야 할까요?

static_or_visibility_first: 메서드를 정의할 때 정적 또는 가시성 중 어느 것이 먼저 오나요?

control_space_parens: 제어 구조 표현식에서 왼쪽 괄호 뒤, 오른쪽 괄호 앞에 공백이 있나요? 예 = if( $expr ), 아니요 =if($expr).

blank_line_after_php: PHP의 여는 태그 뒤에 빈 줄이 필요합니까?

class_method_control_brace: 클래스, 메소드 및 제어 구조에서 왼쪽 중괄호의 위치입니다.

A.3. 설문조사 결과
indent_type:
탭: 7
2: 1
4: 14
line_length_limit_soft:
?: 2
no: 3
75:4
80:6
85:1
100:1
120:4
150:1
line_length_limit_hard:
?: 2
아니요 : 11
85: 4
100: 3
120: 2
class_names:
?: 1
lower: 1
lower_under: 1
Studly: 19
class_brace_line:
다음: 16
동일: 6
상수_이름:
상위: 22
true_false_null:
하위: 19
상위: 3
method_names: Camel: 21
LOWER_UNDER: 1
Method_brace_line:
Next: 15
Same: 7
Control_line_line:
NEXT: 4
Same: 18
Control_space _Affter :
아니요: 2
예: 20
always_use_control_braces:
아니요: 3
예: 19
else_elseif_line:
다음: 6
동일: 16
case_break_in dent_from_switch :
0/1: 4
1/1: 4
1/2: 14
function_space_after:
아니오: 22
closing_php_tag_required:
아니오: 19
예: 3
line_endings:
?: 5
LF: 17
static_or_visibility_first:
?: 5
둘 중 하나: 7
정적: 4
가시성: 6
control_space_parens:
?: 1
아니요: 19
예: 2
blank_line_after_php:
?: 1
아니요: 13
예: 8
class_method_control_ 중괄호:
다음/다음/다음: 4
다음/다음/동일: 11
다음/동일/동일: 1
동일/동일/동일: 6

Verwandte Etiketten:
Quelle:php.cn
Vorheriger Artikel:Code zum Testen des Erfolgs der PHP-Verbindung zu den MYSQL_php-Grundlagen Nächster Artikel:Zusammenfassung der Grundkenntnisse der PHP_php-Grundlagen
Erklärung dieser Website
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
Neueste Artikel des Autors
Aktuelle Ausgaben
verwandte Themen
Mehr>
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage