찾다
php教程php手册PHP PSR 사양 중국어 버전_php 기본

문서 창고 주소: https://github.com/hfcorriez/fig-standards

PSR 사양 중국어 버전

사양이 필요한 이유

발췌문은 공식 문장을 번역한 것입니다. 이 조직은 우리의 코드 프로젝트에 대해 논의하는 것을 목표로 합니다. 협업 프로그래밍 접근 방식을 찾는 공통점.

'Google이 엄격한 코드 표준을 시행하는 이유' 기사의 다음 구절이 생각납니다.

코드 복사 코드 내용은 다음과 같습니다.

Google에서는 모든 코드를 볼 수 있고 모든 Google 코드 라이브러리를 입력할 수 있으며 볼 수 있는 권한이 있습니다. 사실 이런 권한을 가진 사람은 거의 없습니다. 그러나 나를 놀라게 한 것은 들여쓰기, 이름 지정, 파일 구조, 주석 스타일 등 수많은 코딩 표준 덕분에 어떤 코드라도 읽고 쉽게 이해할 수 있다는 점이었습니다. 나는 이러한 규범이 사소하다고 생각했기 때문에 충격을 받았습니다. 그들은 그렇게 많은 일을 할 수 없었을 것입니다. 그러나 그들은 그렇게 했습니다. 프로그램의 기본 구문 구조를 보는 것만으로도 코드 조각을 이해할 수 있다는 것을 알게 되면 이러한 시간 절약은 충격적일 수밖에 없습니다!


독자 여러분, 규정에 대해서는 더 이상 말씀드릴 필요가 없습니다.

마지막에 작성하세요
사양은 필수는 아니지만, 원하는 방식을 선택하셔도 되지만, 사양을 사용하시면 협력이 더 쉬워집니다. 요즘에는 다양한 최신 애플리케이션을 작성하는 것이 더 이상 예전과 같지 않습니다. 애플리케이션은 일반적으로 많은 모듈로 구성됩니다. 사양이 구현되지 않으면 전체 프로젝트에 대한 이해와 의사소통이 더욱 복잡해집니다.

사양을 사용하면 프로젝트와 본인에게 이익이 되는 것은 물론 자명합니다.

승인된 모든 사양 참조: https://github.com/hfcorriez/fig-standards/tree/zh_CN/%E6%8E%A5%E5%8F%97

코드 스타일 사양

이 가이드의 목적은 코드를 탐색할 때 여러 개발자 간의 인지 차이를 줄이는 것입니다. 이는 PHP 코드 형식을 지정하는 방법에 대한 일반적인 규칙 집합을 열거합니다.
각 멤버 프로젝트의 공통점이 이 글의 스타일 규칙을 형성합니다. 서로 다른 개발자가 서로 다른 프로젝트에서 공동 작업을 수행하는 경우 이러한 서로 다른 프로젝트 전반에 걸쳐 공통 표준이 사용됩니다. 따라서 이 가이드의 이점은 규칙 자체에 있는 것이 아니라 규칙을 공유하는 데 있습니다.
RFC 2119의 특징적인 키워드는 "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT"이며 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY"라는 단어입니다. 이 문서에서는 "OPTIONAL"이 사용됩니다.

1. 개요

코드는 PSR-1을 준수해야 합니다.

코드는 탭이 아닌 공백 4개 들여쓰기를 사용해야 합니다.
코드 길이에는 엄격한 제한이 없어야 하며, 소프트 제한은 120자 이하여야 합니다.
네임스페이스 선언 아래에 빈 줄이 있어야 하고, 사용 선언 블록 아래에도 빈 줄이 있어야 합니다.
클래스의 왼쪽 중괄호는 클래스 본문의 다음 줄에, 오른쪽 중괄호는 클래스 본문의 다음 줄에 배치되어야 합니다.
메서드의 왼쪽 중괄호는 다음 줄에 배치하고, 오른쪽 중괄호는 메소드 본문 아래에 배치해야 합니다.
모든 속성과 메서드에는 가시성이 있어야 합니다(번역자 참고 사항: Public, Protect, Private). 추상 및 최종 선언은 가시성 뒤에 있어야 합니다.
제어 구조의 키워드 뒤에는 공백이 있어야 합니다. 메서드와 함수는 허용되지 않습니다.
제어 구조의 왼쪽 중괄호는 같은 줄에 배치되어야 하고, 오른쪽 중괄호는 제어 구조의 다음 줄에 배치되어야 합니다.
제어 구조의 왼쪽 괄호 뒤에 공백이 없어야 하며 오른쪽 괄호 앞에 공백이 없어야 합니다.

1.1. 예
이 예에는 위의 규칙 중 일부가 간단하게 표시되어 있습니다.

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

네임스페이스 VendorPackage;
FooInterface 사용;
BarClass를 Bar로 사용;
OtherVendorOtherPackageBazClass 사용;

class Foo는 Bar를 구현하고 FooInterface를 구현합니다
{
public function SampleFunction($a, $b = null)
{
if ($a === $b) {
bar ();
} elseif ($a > $b) {
                                                                                          );
}
}

final public static function bar()

{

// 메소드 본문
}
}


2. 요약2.1 기본 코드 사양

코드는 PSR-1의 모든 규칙을 준수해야 합니다.

2.2 파일

모든 PHP 파일은 줄 종결자로 Unix LF(줄 바꿈)를 사용해야 합니다.


모든 PHP 파일은 빈 줄로 끝나야 합니다.

순수 PHP 코드의 파일 닫는 태그?>생략해야 합니다

2.3. 줄

줄 길이에는 엄격한 제한이 있을 수 없습니다.


줄 길이에 대한 소프트 제한은 120자여야 합니다. 자동 스타일 검사기는 경고를 표시하지만 오류는 발생하지 않습니다.

실제 줄 길이는 80자를 초과할 수 없습니다. 더 긴 줄은 80자 이하의 여러 후속 줄로 분할되어야 합니다.

공백이 아닌 줄 뒤에는 공백이 없어야 합니다.

빈 줄을 사용하면 가독성을 높이고 관련 코드 블록을 구분할 수 있습니다.

한 줄에 하나의 설명만 포함할 수 있습니다.

2.4. 들여쓰기

코드는 들여쓰기를 위해 공백 4개를 사용해야 하며, 탭 문자는 들여쓰기로 사용할 수 없습니다.


참고: 탭과 혼합하지 않고 공백만 사용하면 코드 차이, 패치, 기록 및 주석의 일부 문제를 방지하는 데 도움이 됩니다. 공백을 사용하면 미묘한 들여쓰기를 조정하여 줄 사이의 정렬을 개선하는 것도 매우 쉽습니다.

2.5. 키워드 및 True/False/Null

PHP 키워드는 소문자여야 합니다.


PHP 상수 true, false 및 null은 소문자여야 합니다.

3. 네임스페이스 및 사용 선언

있는 경우 네임스페이스 선언 뒤에 빈 줄이 있어야 합니다.


있는 경우 모든 use 문은 네임스페이스 문 아래에 배치되어야 합니다.

use 키워드는 하나의 선언에만 사용해야 합니다.

사용 선언 블록 뒤에는 빈 줄이 있어야 합니다.

예:

네임스페이스 VendorPackage ;

FooClass 사용;BarClass를 Bar로 사용;

OtherVendorOtherPackageBazClass 사용;

// ... 추가 PHP 코드 ...


4. 클래스, 속성 및 메서드

"클래스"라는 용어는 모든 클래스, 인터페이스 및 특성을 의미합니다.


4.1. 확장 및 상속

클래스의 확장 및 구현 키워드는 클래스 이름과 같은 줄에 있어야 합니다.


클래스의 왼쪽 중괄호는 아래의 한 줄에 배치되어야 하며, 오른쪽 중괄호는 클래스 본문 뒤의 한 줄에 배치되어야 합니다.

네임스페이스 VendorPackage ;
FooClass 사용;
BarClass를 바로 사용;
OtherVendorOtherPackageBazClass 사용;

클래스 ClassName 확장 ParentClass 구현 ArrayAccess, Countable{

// 상수, 속성, 메서드
}


한 번의 들여쓰기로 목록을 여러 후속 행으로 분할할 수 있도록 구현합니다. 이렇게 하면 목록의 첫 번째 항목이 다음 줄에 배치되어야 하며 한 줄에 하나의 인터페이스만 있어야 합니다.

네임스페이스 VendorPackage ;

FooClass 사용;BarClass를 Bar로 사용;

OtherVendorOtherPackageBazClass 사용;

클래스 ClassName은 ParentClass 구현을 확장합니다

ArrayAccess,

Countable,
직렬화 가능
{
// 상수, 속성, 메서드
}

4.2.속성
모든 속성은 가시성을 선언해야 합니다.

var 키워드는 속성을 선언하는 데 사용할 수 없습니다.

하나의 문으로 여러 속성을 선언할 수 없습니다.

속성 이름 앞에는 보호 또는 비공개 가시성을 나타내기 위해 단일 밑줄이 붙으면 안 됩니다.

속성 선언은 다음과 같습니다.

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

네임스페이스 VendorPackage ;

클래스 클래스명
{
public $foo = null;
}

4.3. 메소드
모든 메소드는 가시성을 선언해야 합니다.

메서드 이름은 보호 또는 비공개 가시성을 나타내기 위해 단일 밑줄만 사용해서는 안 됩니다.

메서드 이름 뒤에는 선언 뒤에 공백이 올 수 없습니다. 여는 중괄호는 아래의 자체 줄에 배치되어야 하며, 닫는 중괄호는 메서드 본문 아래의 자체 줄에 배치되어야 합니다. 왼쪽 괄호 뒤에 공백이 없어야 하며 오른쪽 괄호 앞에 공백이 없어야 합니다.

메서드 정의는 다음과 같아야 합니다. 대괄호, 쉼표, 공백 및 중괄호에 주의하세요.

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

네임스페이스 VendorPackage ;

class ClassName
{
공개 함수 fooBarBaz($arg1, &$arg2, $arg3 = [])
{
// 메서드 본문
}
}

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

메소드에 기본값이 있는 매개변수는 매개변수 목록의 마지막에 배치되어야 합니다.

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

네임스페이스 VendorPackage ;

class ClassName
{
공용 함수 foo($arg1, &$arg2, $arg3 = [])
{
// 메서드 본문
}
}

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

매개변수 목록이 여러 줄로 나누어질 때 오른쪽 괄호와 왼쪽 중괄호는 공백으로 함께 배치되어 자체 줄을 형성해야 합니다.

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

네임스페이스 VendorPackage ;

class ClassName
{
공용 함수 aVeryLongMethodName(
ClassTypeHint $arg1,
&$arg2,
) array $arg3 = []
) {
// 메소드 본문
}
}

4.5. abstract, final 및 static
있는 경우 추상 및 최종 선언은 가시성 선언 앞에 배치되어야 합니다.

있는 경우 정적 선언 뒤에 가시성 선언이 와야 합니다.

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

네임스페이스 VendorPackage ;

추상 클래스 ClassName
{
protected static $foo;

추상 보호 함수 zim();

final public static function bar()
{
// 메소드 본문
}
}

4.6. 메소드 및 함수 호출
메서드나 함수를 호출하려면 메소드 또는 함수 이름과 왼쪽 괄호 사이에 공백이 없어야 하고, 왼쪽 괄호 뒤에 공백이 없어야 하며, 오른쪽 괄호 앞에 공백이 없어야 합니다. 함수 목록에서 쉼표 앞에는 공백이 없어야 하며, 쉼표 뒤에는 공백이 1개 있어야 합니다.

bar();
$foo->bar($arg1);
Foo::bar($arg2, $arg3);
매개변수 목록은 다음을 수행할 수 있습니다. 들여쓰기를 사용하여 후속 줄로 분할됩니다. 이렇게 하면 목록의 첫 번째 항목이 다음 줄에 배치되어야 하며 각 줄에는 정확히 하나의 인수가 있어야 합니다.

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

$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 // 본문
}

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 : L'accolade ouvrante d'une classe doit-elle être placée sur la même ligne ou sur la ligne suivante ?

constant_names : Comment nommer les constantes de classe ? upper = majuscule plus délimiteur souligné.

true_false_null : Écrire en toutes lettres ou en majuscules ?

method_names : Comment nommer les méthodes ? camel = chameau, lower_under = minuscule plus délimiteur souligné.

method_brace_line : L'accolade ouvrante de la méthode est-elle sur la même ligne ou sur la ligne suivante ?

control_brace_line : L'accolade gauche de la structure de contrôle est-elle sur la même ligne ou sur la ligne suivante ?

control_space_after : Y a-t-il un espace après le mot-clé de la structure de contrôle ?

always_use_control_braces : toujours utiliser des accolades pour les structures de contrôle ?

else_elseif_line : lors de l'utilisation de else et elseif, doivent-ils être placés sur la même ligne ou sur la ligne suivante ?

case_break_indent_from_switch : combien de fois case et break sont-ils en retrait de l'instruction switch ?

function_space_after : Y a-t-il des espaces dans le nom de la fonction et le crochet gauche de l'appel de fonction ?

closing_php_tag_required : S'il s'agit d'un fichier PHP pur, fermer la balise ?>Est-ce obligatoire ?

line_endings : Quelles fins de ligne utiliser ?

static_or_visibility_first : lors de la définition d'une méthode, qui vient en premier, statique ou visibilité ?

control_space_parens : Dans l'expression de la structure de contrôle, y a-t-il un espace après le crochet gauche et avant le crochet droit ? oui = si ( $expr ), non = si ($expr).

blank_line_after_php : PHP a-t-il besoin d'une ligne vide après la balise de début ?

class_method_control_brace : La position de l'accolade gauche dans les classes, les méthodes et les structures de contrôle.

A.3. Résultats de l'enquête
indent_type :
onglet : 7
2 : 1
4 : 14
line_length_limit_soft :
?: 2
non : 3
75 : 4
80 : 6
85 : 1
100 : 1
120 : 4
150 : 1
line_length_limit_hard:
?: 2
non : 11
85 : 4
100 : 3
120 : 2
class_names:
?: 1
inférieur : 1
inférieur_under : 1
étudiant : 19
class_brace_line :
suivant : 16
identique : 6
constant_names :
supérieur : 22
true_false_null :
inférieur : 19
supérieur : 3
method_names : Chameau : 21
LOWER_UNDER : 1
Method_brace_line :
Suivant : 15
Idem : 7
Control_line_line :
NEXT : 4
Idem : 18
Control_space _Affter :
non : 2
oui : 20
always_use_control_braces :
non : 3
oui : 19
else_elseif_line :
suivant : 6
pareil : 16
case_break_in dent_from_switch :
0/1 : 4
1/1 : 4
1/2 : 14
function_space_after :
non : 22
closing_php_tag_required :
non : 19
oui : 3
line_endings :
? : 5
LF : 17
static_or_visibility_first :
?: 5
soit : 7
statique : 4
visibilité : 6
control_space_parens:
?: 1
non : 19
oui : 2
blank_line_after_php:
?: 1
non : 13
oui : 8
class_method_control_ brace :
suivant/suivant/suivant : 4
suivant/suivant/identique : 11
suivant/identique/identique : 1
identique/identique/identique : 6

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
如何在PHP中使用PSR规范来编写API如何在PHP中使用PSR规范来编写APIJun 17, 2023 pm 07:01 PM

随着互联网的快速发展,越来越多的企业和开发者开始使用API(应用程序接口)来构建他们的应用程序。API使不同的应用程序和平台之间的交互变得更加容易。因此,API的编写和设计变得越来越重要。为了达成这一目标,PHP已经实现了PSR(PHP标准推荐),它提供了一套标准规范,以帮助PHP程序员编写更加有效和可维护的API。下面我们将一起来了解如何使用PSR规范来编

遵循PSR2和PSR4规范的PHP团队协作流程和代码审查机制遵循PSR2和PSR4规范的PHP团队协作流程和代码审查机制Oct 15, 2023 am 10:28 AM

遵循PSR2和PSR4规范的PHP团队协作流程和代码审查机制概述:在一个PHP团队中,为了提高代码的可读性、可维护性和可扩展性,遵循PHP代码规范是非常重要的。本文将介绍如何遵循PSR2和PSR4规范来建立一个高效的PHP团队协作流程和代码审查机制,并提供一些具体的代码示例。一、PSR2规范PSR2规范定义了PHP代码的编码风格和格式化要求,包括缩进、括号间

遵守PSR2与PSR4规范的PHP团队开发流程遵守PSR2与PSR4规范的PHP团队开发流程Oct 15, 2023 am 11:25 AM

遵守PSR2与PSR4规范的PHP团队开发流程,需要具体代码示例在现代的PHP开发中,遵守PHPFIG(PHPFrameworkInteropGroup)制定的PSR(PHPStandardRecommendation)规范是一个良好的开发实践。其中,PSR2是关于编码风格的规范,而PSR4是关于自动加载的规范。本文将讨论如何在团队开发中遵守这两

遵循PSR2和PSR4规范的代码合并与重构实践遵循PSR2和PSR4规范的代码合并与重构实践Oct 15, 2023 pm 05:24 PM

遵循PSR2和PSR4规范的代码合并与重构实践,需要具体代码示例引言:在软件开发中,代码合并和重构是非常常见的操作。代码合并指的是将多个分散的代码片段合并到一个文件或模块中,以提高代码的可读性和可维护性。而代码重构则指对现有代码进行改进,使其更加高效、可扩展和易于理解。本文将介绍如何在合并和重构代码时遵循PSR2和PSR4规范,并附带具体的代码示例。一、遵循

PSR2和PSR4规范在团队协作中的应用与挑战PSR2和PSR4规范在团队协作中的应用与挑战Oct 15, 2023 am 10:07 AM

PSR2和PSR4规范在团队协作中的应用与挑战,需要具体代码示例在软件开发团队中,规范与约定是保持代码一致性和可维护性的关键。PHP领域的两个重要规范:PSR2(PHP代码风格规范)和PSR4(自动加载规范)在团队协作中扮演了重要的角色。本文将详细介绍这两个规范的应用,并分析在实际开发过程中可能遇到的挑战,并给出相应的解决方法。首先,我们来看一个简单的PSR

PSR2和PSR4规范在Yii框架中的应用和推广PSR2和PSR4规范在Yii框架中的应用和推广Oct 15, 2023 pm 03:48 PM

PSR2和PSR4规范在Yii框架中的应用和推广引言:随着PHP开发的日趋普及和框架的不断完善,编码规范和自动加载方式也变得越来越重要。本文将介绍PSR2和PSR4规范在Yii框架中的应用和推广,并提供具体的代码示例。一、什么是PSR2和PSR4规范PSR2规范PSR2规范是PHP编码规范的一种标准,它定义了一系列命名风格、代码结构和格式等要求,致力于提高团

PSR2和PSR4规范在Phalcon框架中的示例演示和使用指南PSR2和PSR4规范在Phalcon框架中的示例演示和使用指南Oct 15, 2023 am 11:33 AM

PSR2和PSR4规范在Phalcon框架中的示例演示和使用指南引言:随着开源软件的普及和发展,代码规范化已经成为一个非常重要的话题。代码规范可以提高代码的可读性和可维护性,让团队成员更容易合作。PHP-FIG制定了一系列的PSR(PHPStandardsRecommendations)规范,其中最常用的是PSR2和PSR4。本文将以Phalcon框架为

PSR2和PSR4规范对团队合作开发的规范化要求PSR2和PSR4规范对团队合作开发的规范化要求Oct 15, 2023 pm 05:13 PM

PSR2和PSR4规范对团队合作开发的规范化要求,需要具体代码示例引言:在团队合作开发过程中,代码规范是至关重要的。它能够提高代码的可读性、可维护性,并确保多人协作开发时的代码一致性。而PHP-FIG(PHP-FrameworkInteroperabilityGroup,PHP框架互操作性小组)提出的PSR(PHPStandardRecommenda

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경