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

PHP PSR 사양 중국어 버전_php 기본

May 16, 2016 am 09:00 AM
psr 사양

문서 창고 주소: 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 < $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으로 문의하세요.

핫 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를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP에서 PSR 사양을 사용하여 API를 작성하는 방법 PHP에서 PSR 사양을 사용하여 API를 작성하는 방법 Jun 17, 2023 pm 07:01 PM

인터넷의 급속한 발전으로 점점 더 많은 기업과 개발자가 API(애플리케이션 프로그래밍 인터페이스)를 사용하여 애플리케이션을 구축하기 시작했습니다. API를 사용하면 다양한 애플리케이션과 플랫폼 간의 상호 작용이 더 쉬워집니다. 따라서 API 작성 및 디자인이 점점 더 중요해지고 있습니다. 이 목표를 달성하기 위해 PHP는 PHP 프로그래머가 보다 효율적이고 유지 관리하기 쉬운 API를 작성하는 데 도움이 되는 표준 사양 세트를 제공하는 PSR(PHP 표준 권장 사항)을 구현했습니다. 아래에서는 PSR 사양을 사용하여 컴파일하는 방법을 함께 배웁니다.

PSR2 및 PSR4 사양에 따른 PHP 팀 협업 프로세스 및 코드 검토 메커니즘 PSR2 및 PSR4 사양에 따른 PHP 팀 협업 프로세스 및 코드 검토 메커니즘 Oct 15, 2023 am 10:28 AM

PSR2 및 PSR4 사양에 따른 PHP 팀 협업 프로세스 및 코드 검토 메커니즘 개요: PHP 팀에서는 코드의 가독성, 유지 관리성 및 확장성을 향상시키기 위해 PHP 코드 사양을 따르는 것이 매우 중요합니다. 이 기사에서는 효율적인 PHP 팀 협업 프로세스 및 코드 검토 메커니즘을 구축하기 위해 PSR2 및 PSR4 사양을 따르는 방법을 소개하고 몇 가지 구체적인 코드 예제를 제공합니다. 1. PSR2 사양 PSR2 사양은 들여쓰기 및 대괄호 공백을 포함하여 PHP 코드의 코딩 스타일 및 형식 요구 사항을 정의합니다.

PSR2 및 PSR4 사양을 준수하는 PHP 팀 개발 프로세스 PSR2 및 PSR4 사양을 준수하는 PHP 팀 개발 프로세스 Oct 15, 2023 am 11:25 AM

PSR2 및 PSR4 사양을 준수하는 PHP 팀 개발 프로세스에는 특정 코드 예제가 필요합니다. 최신 PHP 개발에서는 PHPFIG(PHPFrameworkInteropGroup)에서 공식화한 PSR(PHPStandard Recommendation) 사양을 준수하는 것이 좋은 개발 방식입니다. 그 중 PSR2는 코딩 스타일에 관한 사양이고, PSR4는 자동 로딩에 관한 사양이다. 이 기사에서는 팀 개발에서 이 두 가지 측면을 준수하는 방법에 대해 설명합니다.

PSR2 및 PSR4 사양에 따른 코드 병합 및 리팩토링 사례 PSR2 및 PSR4 사양에 따른 코드 병합 및 리팩토링 사례 Oct 15, 2023 pm 05:24 PM

PSR2 및 PSR4 사양을 따르는 코드 병합 및 리팩토링 방식에는 특정 코드 예제가 필요합니다. 소개: 소프트웨어 개발에서 코드 병합 및 리팩토링은 매우 일반적인 작업입니다. 코드 병합은 코드의 가독성과 유지 관리성을 향상시키기 위해 흩어져 있는 여러 코드 조각을 하나의 파일이나 모듈로 병합하는 것을 의미합니다. 코드 리팩토링은 기존 코드를 개선하여 보다 효율적이고 확장 가능하며 이해하기 쉽게 만드는 것을 의미합니다. 이 문서에서는 특정 코드 예제를 사용하여 코드를 병합하고 리팩토링할 때 PSR2 및 PSR4 사양을 따르는 방법을 설명합니다. 1. 팔로우

팀 협업에서 PSR2 및 PSR4 사양의 적용 및 과제 팀 협업에서 PSR2 및 PSR4 사양의 적용 및 과제 Oct 15, 2023 am 10:07 AM

팀 협업에서 PSR2 및 PSR4 사양을 적용하고 과제를 해결하려면 특정 코드 예제가 필요합니다. 소프트웨어 개발 팀에서는 사양과 규칙이 코드 일관성과 유지 관리성을 유지하는 데 핵심입니다. PHP 분야의 두 가지 중요한 사양: PSR2(PHP 코드 스타일 사양)와 PSR4(자동 로딩 사양)는 팀 협업에서 중요한 역할을 합니다. 이 기사에서는 이 두 가지 사양의 적용을 자세히 소개하고 실제 개발 프로세스에서 직면할 수 있는 과제를 분석하고 그에 따른 솔루션을 제공합니다. 먼저 간단한 PSR을 살펴보겠습니다.

Phalcon 프레임워크의 PSR2 및 PSR4 사양 데모 및 사용 가이드 예시 Phalcon 프레임워크의 PSR2 및 PSR4 사양 데모 및 사용 가이드 예시 Oct 15, 2023 am 11:33 AM

Phalcon 프레임워크의 PSR2 및 PSR4 사양 예시 및 사용 가이드 소개: 오픈 소스 소프트웨어의 인기와 발전으로 인해 코드 표준화가 매우 중요한 주제가 되었습니다. 코드 사양은 코드의 가독성과 유지 관리성을 향상시켜 팀 구성원의 공동 작업을 더욱 쉽게 만듭니다. PHP-FIG는 일련의 PSR(PHPStandardsRecommendations) 사양을 개발했으며, 그 중 가장 일반적으로 사용되는 사양은 PSR2 및 PSR4입니다. 이 글에서는 Phalcon 프레임워크를 사용합니다.

Yii 프레임워크에서 PSR2 및 PSR4 사양 적용 및 홍보 Yii 프레임워크에서 PSR2 및 PSR4 사양 적용 및 홍보 Oct 15, 2023 pm 03:48 PM

Yii 프레임워크에서 PSR2 및 PSR4 사양 적용 및 홍보 소개: PHP 개발의 인기가 높아지고 프레임워크가 지속적으로 개선됨에 따라 코딩 사양 및 자동 로딩 방법이 점점 더 중요해지고 있습니다. 이 기사에서는 Yii 프레임워크에서 PSR2 및 PSR4 사양의 적용 및 홍보를 소개하고 구체적인 코드 예제를 제공합니다. 1. PSR2 및 PSR4 사양은 무엇입니까? PSR2 사양은 PHP 코딩 사양의 표준이며 일련의 명명 스타일, 코드 구조 및 형식 요구 사항을 정의하며 팀워크를 향상시키기 위해 노력합니다.

PSR2 및 PSR4 사양은 팀 협력 개발 요구 사항을 표준화합니다. PSR2 및 PSR4 사양은 팀 협력 개발 요구 사항을 표준화합니다. Oct 15, 2023 pm 05:13 PM

PSR2 및 PSR4 사양에는 팀워크 개발을 위한 표준화된 요구 사항이 있으며 특정 코드 예제가 필요합니다. 소개: 팀워크 개발 프로세스에서는 코드 사양이 중요합니다. 코드의 가독성과 유지 관리성을 향상시키고, 여러 사람이 공동 개발할 때 코드 일관성을 보장할 수 있습니다. PHP-FIG(PHP-FrameworkInteroperabilityGroup, PHP Framework Interoperability Group)에서 제안한 PSR(PHPStandard Recommenda)

See all articles