PHP PSR-Spezifikation Chinesische Version_php-Grundlagen
Adresse des Dokumentenlagers: https://github.com/hfcorriez/fig-standards
PSR-Spezifikation, chinesische Version
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“:
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:
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
}
}
Der Code muss allen Regeln von PSR-1 entsprechen.
2.2 Dateien
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:
FooClass verwenden;BarClass als Bar verwenden;
OtherVendorOtherPackageBazClass verwenden;
// ... zusätzlicher PHP-Code ...
4.1. Erweiterung und Vererbung
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.
verwende FooClass;
verwende BarClass als Bar;
verwende OtherVendorOtherPackageBazClass;
Klasse ClassName erweitert ParentClass implementiert ArrayAccess, Countable{
// Konstanten, Eigenschaften, Methoden
}
FooClass verwenden;BarClass als Bar verwenden;
OtherVendorOtherPackageBazClass verwenden;
class ClassName erweitert ParentClass-Implementierungen
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.
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:
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.
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.
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.
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.
$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

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Mit der rasanten Entwicklung des Internets beginnen immer mehr Unternehmen und Entwickler, APIs (Application Programming Interfaces) zum Erstellen ihrer Anwendungen zu verwenden. APIs erleichtern die Interaktion zwischen verschiedenen Anwendungen und Plattformen. Daher werden API-Schreiben und -Design immer wichtiger. Um dieses Ziel zu erreichen, hat PHP PSR (PHP Standard Recommendation) implementiert, das eine Reihe von Standardspezifikationen bereitstellt, um PHP-Programmierern beim Schreiben effizienterer und wartbarer APIs zu helfen. Im Folgenden erfahren Sie gemeinsam, wie Sie die PSR-Spezifikation zum Kompilieren verwenden

Überblick über den PHP-Team-Zusammenarbeitsprozess und den Codeüberprüfungsmechanismus, der den PSR2- und PSR4-Spezifikationen folgt: In einem PHP-Team ist es sehr wichtig, die PHP-Codespezifikationen zu befolgen, um die Lesbarkeit, Wartbarkeit und Skalierbarkeit des Codes zu verbessern. In diesem Artikel wird erläutert, wie Sie die PSR2- und PSR4-Spezifikationen befolgen, um einen effizienten PHP-Team-Zusammenarbeitsprozess und Codeüberprüfungsmechanismus einzurichten, und einige spezifische Codebeispiele bereitstellen. 1. PSR2-Spezifikation Die PSR2-Spezifikation definiert den Codierungsstil und die Formatierungsanforderungen von PHP-Code, einschließlich Einrückung und Klammerraum.

Code-Zusammenführungs- und Refactoring-Praktiken, die den PSR2- und PSR4-Spezifikationen folgen, erfordern spezifische Codebeispiele. Einführung: In der Softwareentwicklung sind Code-Zusammenführung und Refactoring sehr häufige Vorgänge. Unter Code-Zusammenführung versteht man das Zusammenführen mehrerer verstreuter Codefragmente in einer Datei oder einem Modul, um die Lesbarkeit und Wartbarkeit des Codes zu verbessern. Beim Code-Refactoring geht es darum, vorhandenen Code zu verbessern, um ihn effizienter, skalierbarer und leichter verständlich zu machen. In diesem Artikel wird anhand konkreter Codebeispiele erläutert, wie Sie beim Zusammenführen und Refactoring von Code die PSR2- und PSR4-Spezifikationen befolgen. 1. Folgen

Der PHP-Teamentwicklungsprozess, der sich an die PSR2- und PSR4-Spezifikationen hält, erfordert spezifische Codebeispiele. In der modernen PHP-Entwicklung ist es eine gute Entwicklungspraxis, die von PHPFIG (PHPFrameworkInteropGroup) formulierten PSR-Spezifikationen (PHPStandard Recommendation) einzuhalten. Darunter ist PSR2 eine Spezifikation zum Codierungsstil, während PSR4 eine Spezifikation zum automatischen Laden ist. In diesem Artikel wird erläutert, wie diese beiden Aspekte bei der Teamentwicklung beachtet werden können

Beispielhafte Demonstration und Nutzungsanleitung der PSR2- und PSR4-Spezifikationen im Phalcon-Framework. Einführung: Mit der Popularität und Entwicklung von Open-Source-Software ist die Code-Standardisierung zu einem sehr wichtigen Thema geworden. Codespezifikationen können die Lesbarkeit und Wartbarkeit von Code verbessern und den Teammitgliedern die Zusammenarbeit erleichtern. PHP-FIG hat eine Reihe von PSR-Spezifikationen (PHPStandardsRecommendations) entwickelt, von denen die am häufigsten verwendeten PSR2 und PSR4 sind. In diesem Artikel wird das Phalcon-Framework als verwendet

Die Anwendung und Herausforderungen der PSR2- und PSR4-Spezifikationen in der Teamzusammenarbeit erfordern spezifische Codebeispiele. In einem Softwareentwicklungsteam sind Spezifikationen und Konventionen der Schlüssel zur Aufrechterhaltung der Codekonsistenz und Wartbarkeit. Zwei wichtige Spezifikationen im PHP-Bereich: PSR2 (PHP Code Style Specification) und PSR4 (Automatic Loading Specification) spielen eine wichtige Rolle in der Teamzusammenarbeit. In diesem Artikel wird die Anwendung dieser beiden Spezifikationen im Detail vorgestellt, die Herausforderungen analysiert, die im tatsächlichen Entwicklungsprozess auftreten können, und entsprechende Lösungen angegeben. Schauen wir uns zunächst einen einfachen PSR an

Der Verbesserungseffekt der PSR2- und PSR4-Spezifikationen auf die PHP-Codequalität erfordert spezifische Codebeispiele. Einführung: Mit der Entwicklung von PHP sind immer mehr Entwickler in die Reihen der PHP-Entwicklung eingestiegen. Aufgrund unterschiedlicher Entwicklungsgewohnheiten weist der PHP-Code jedoch unterschiedliche Stile sowie eine schlechte Lesbarkeit und Wartbarkeit auf, was zu Problemen bei der Projektentwicklung und -wartung führt. Um dieses Problem zu lösen, schlug die Organisation PHPFIG (PHPFrameworkInteropGroup) PSR (PHPSta) vor

Einführung in die Anwendung und Förderung der PSR2- und PSR4-Spezifikationen im Yii-Framework: Mit der zunehmenden Beliebtheit der PHP-Entwicklung und der kontinuierlichen Verbesserung des Frameworks werden Codierungsspezifikationen und automatische Lademethoden immer wichtiger. In diesem Artikel werden die Anwendung und Förderung der PSR2- und PSR4-Spezifikationen im Yii-Framework vorgestellt und spezifische Codebeispiele bereitgestellt. 1. Was sind PSR2- und PSR4-Spezifikationen? Die PSR2-Spezifikation ist ein Standard für PHP-Codierungsspezifikationen. Sie definiert eine Reihe von Namensstilen, Codestrukturen und Formatanforderungen und dient der Verbesserung der Teamarbeit.
