>  기사  >  백엔드 개발  >  PHP PSR-2 코딩 스타일 사양

PHP PSR-2 코딩 스타일 사양

WBOY
WBOY원래의
2016-07-23 08:54:441199검색
코드 스타일 사양

본 사양은 [PSR-1][] 기본 코드 사양을 상속 및 확장한 것입니다.

이 사양에서는 PHP 코드를 표준화하기 위한 일련의 규칙을 공식화하여 다양한 작성자의 코드를 탐색할 때 다양한 코딩 스타일로 인해 발생하는 불편함을 줄이기를 희망합니다.

여러 프로그래머가 여러 프로젝트에서 협업하는 경우 공통 코딩 표준이 필요하며
이 글의 스타일 사양은 여러 다른 프로젝트의 코딩 스타일의 공통 특성에서 파생됩니다.
따라서 가치는 이 사양의 핵심은 그 자체가 아니라 우리 모두가 따르는 코딩 스타일에 있습니다.

키워드 "해야 한다"("MUST"), "해서는 안 된다/해서는 안 된다"("MUST NOT"), "필요하다"("필수"),
"할 것이다"("SHALL"), "SHALL NOT"), "SHOULD"), "SHOULD NOT",
"RECOMMENDED", "MAY" ) 및 "OPTIONAL")은 [RFC 2119][]에 자세히 설명되어 있습니다.

개요


코드 [PSR-1][]의 코딩 규칙을 따라야 합니다.

코드 탭 키 대신 공백 4개를 사용해 들여쓰기해야 합니다.

각 줄의 문자 수 80자 이내로 유지해야 합니다. 이론적으로 는 120자를 초과할 수 없지만 하드 제한되어서는 안 됩니다.

각 네임스페이스 선언 및 사용 선언 블록 뒤에

반드시빈 줄을 삽입해야 합니다.

클래스의 여는 중괄호({)

는 함수 선언 뒤의 한 줄에 작성해야 하며, 닫는 중괄호(})도 한 줄에 작성해야 합니다. 함수 본문 뒤에 자체 줄이 있습니다.

메서드의 여는 중괄호({)

는 함수 선언 뒤의 한 줄에 작성해야 하며, 닫는 중괄호(})도 작성해야 합니다. 함수 본문 뒤에 자체 줄이 있습니다.

클래스 특성 및 메서드

액세스 수정자(개인, 보호 및 공개)를 추가해야 하며 추상 및 최종 은 액세스 수정자 앞에 선언해야 하고 정적 액세스 한정자 뒤에 선언됩니다.

제어 구조의 키워드 다음

에는 공백 문자가 있어야 하지만, 메서드나 함수를 호출할 때 에는 공백 문자가 없어야 합니다.

제어 구조의 여는 중괄호({)

는 선언과 같은 줄에 작성해야 하고, 닫는 중괄호(})는 본문 뒤의 자체 줄에 작성해야 합니다. 제어 구조의 여는 왼쪽 괄호 뒤와 닫는 오른쪽 괄호 앞에는 공백이 없어야 합니다.

1.1. 예

다음 예제 프로그램은 위 사양의 대부분을 간단하게 보여줍니다.

namespace VendorPackage;
    use FooInterface;
  1. BarClass를 Bar로 사용;
  2. OtherVendorOtherPackageBazClass 사용;
  3. class Foo는 Bar를 확장하여 FooInterface를 구현합니다
  4. {
  5. 공개 함수 SampleFunction($a, $b = null)
  6. {
  7. if ($a === $b) {
  8. bar();
  9. } elseif ($a > $b) {
  10. $foo->bar($arg1);
  11. } else {
  12. BazClass::bar($arg2, $arg3);
  13. }
  14. }
  15. final public static function bar()
  16. {
  17. // 메소드 본문
  18. }
  19. }
  20. 코드 복사
  21. 일반 규정


    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 모든 [키워드][]

    모두 소문자여야 합니다.

    true, false 및 null 상수도

    모두 소문자여야 합니다.

    네임스페이스 및 사용 선언


    네임스페이스 선언 뒤에는 빈 줄을 삽입해야 합니다.

    모든 용도는 네임스페이스 뒤에 선언해야 합니다.

    각 use 문에는 하나의 use 키워드만 있어야 합니다.

    use 문 블록이 선언된 후에는 빈 줄이 있어야 합니다.

    예:

      네임스페이스 VendorPackage;
    1. FooClass 사용;
    2. BarClass를 Bar로 사용;
    3. OtherVendorOtherPackageBazClass 사용;
    4. // ... 추가 PHP 코드 ...
    코드 복사
    클래스, 속성 및 메서드


    여기서 "클래스"는 재사용 가능한 모든 클래스, 인터페이스 및 특성 코드 블록을 의미합니다.

    4.1. 확장과 상속

    확장 및 구현 키워드

    는 클래스 이름과 같은 줄에 작성해야 합니다.

    클래스의 여는 중괄호

    한 줄을 차지해야 하고, 닫는 중괄호 는 클래스 본문 다음의 한 줄을 차지해야 합니다.

    네임스페이스 VendorPackage;
  22. FooClass 사용;
  23. BarClass를 Bar로 사용;
  24. OtherVendorOtherPackageBazClass 사용;
  25. class ClassName extends ParentClass Implements ArrayAccess, Countable
  26. {
  27. // 상수, 속성, 메서드
  28. }
코드 복사
구현의 상속 목록은 여러 줄로 나눌 수도 있습니다

이 경우 상속된 각 인터페이스 이름 은 첫 번째 줄을 포함하여 별도의 줄로 구분되어야 합니다.

네임스페이스 VendorPackage;
  • FooClass 사용;
  • BarClass를 Bar로 사용;
  • OtherVendorOtherPackageBazClass 사용;
  • class ClassName extends ParentClass Implements
  • ArrayAccess,
  • Countable,
  • Serialized
  • {
  • // 상수, 속성, 메서드
  • }
  • 코드 복사
  • 4.2. 각 속성에는
    반드시

    액세스 수정자가 추가되어 있어야 합니다.

    속성을 선언하기 위해 var 키워드를 사용하면 안 됩니다

    . 각 문은

    두 개 이상의 속성을 정의하면 안 됩니다

    .

    속성이 보호되는지 또는 비공개인지 구분하기 위해 밑줄을 접두사로 사용하지 마세요

    . 다음은 속성 선언의 예입니다.

    namespace VendorPackage;
  • class ClassName
  • {
  • public $foo = null;
  • }
  • 코드 복사
  • 4.3. 모든 메소드는

    액세스 수정자를 추가해야 합니다.

    메소드가 보호되는지 또는 비공개인지 구분하기 위해 밑줄을 접두사로 사용하지 마세요

    . 메서드 이름 뒤에

    에는 공백 문자가 있어서는 안 됩니다.

    여는 중괄호 는 한 줄에 단독으로 있어야 하며, 닫는 중괄호 이어야 합니다. 🎜> 메소드 본문 뒤에 별도의 줄에 . 매개변수의 왼쪽 괄호 뒤와 오른쪽 괄호 앞에는 공백 이 없어야 합니다. 표준 메소드 선언의 경우 괄호, 쉼표, 공백 및 중괄호 배치에 주의하세요.

    네임스페이스 VendorPackage;
    1. class ClassName
    2. {
    3. 공개 함수 fooBarBaz($arg1, &$arg2 , $arg3 = [])
    4. {
    5. // 메소드 본문
    6. }
    7. }
    8. 코드 복사
    4.4.

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

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

    1. 네임스페이스 VendorPackage;
    2. class ClassName
    3. {
    4. 공용 함수 foo($arg1, &$arg2 , $arg3 = [])
    5. {
    6. // 메소드 본문
    7. }
    8. }
    코드 복사

    매개변수 목록 여러 줄로 나눌 수 있으므로 첫 번째 매개변수를 포함한 각 매개변수 별도의 줄에 있어야 합니다.

    매개변수 목록을 여러 줄로 나눈 후 메서드의 닫는 괄호와 여는 중괄호를 같은 줄에 공백으로 구분하여 작성해야 합니다.

    1. 네임스페이스 VendorPackage;
    2. class ClassName
    3. {
    4. 공개 함수 aVeryLongMethodName(
    5. ClassTypeHint $arg1 ,
    6. &$arg2,
    7. array $arg3 = []
    8. ) {
    9. // 메서드 본문
    10. }
    11. }
    코드 복사
    4.5 추상적이고 최종적이며 정적입니다.

    추상 또는 최종 선언을 추가해야 하는 경우에는 접근 한정자 앞에 써야 하고, static의 경우 뒤에 써야 합니다.

    1. 네임스페이스 VendorPackage;
    2. 추상 클래스 ClassName
    3. {
    4. protected static $foo;
    5. 추상 보호 함수 zim();
    6. final public static function bar()
    7. {
    8. // 메소드 본문
    9. }
    10. }
    코드 복사
    4.6.

    메서드 및 함수 호출 시, 메소드 이름 또는 함수 이름과 매개변수 의 왼쪽 괄호 사이에 공백이 없어야 하며, 오른쪽 괄호 앞에는 공백이 없어야 합니다. 매개변수 . 각 매개변수 앞에는 공백이 없어야 하지만, 뒤에는 공백이 있어야 합니다.

      bar();
    1. $foo->bar($arg1);
    2. Foo::bar($arg2 , $arg3);
    코드 복사
    매개변수

    여러 줄로 나눌 수 있으며, 이 때 첫 번째 매개변수를 포함한 각 매개변수 각 매개변수 은 한 줄에 이어야 합니다.

      $foo->bar(
    1. $longArgument,
    2. $longerArgument,
    3. $muchLongerArgument
    4. ) ;
    코드 복사
    제어 구조


    제어구조의 기본 사양은 다음과 같습니다.

    제어 구조 키워드

    뒤에는 공백이 있어야 합니다.

    왼쪽 괄호 뒤에는 공백이 없어야 합니다(

    .

    오른쪽 대괄호 앞에는

    공백이 없어야 합니다. 오른쪽 괄호 )와 여는 중괄호 { 사이에 공백

    이 있어야 합니다.

    구조체 의 본문은

    한 번 들여쓰기되어야 합니다.

    중괄호 종료 } 구조체 본문 뒤에 별도의 줄에 있어야 합니다.

    각 구조의 본문 은 중괄호 쌍으로 묶어야 합니다. 이렇게 하면 구조가 더욱 구조화되고 새 줄을 추가할 때 오류가 발생할 가능성이 줄어듭니다.

    5.1. if , elseif 및 else

    표준 if 구조는 다음 코드와 같습니다. 대괄호, 공백 및 중괄호의 위치에 주의하세요. else와 elseif는 이전 닫는 중괄호와 같은 줄에 있습니다.


    if ($expr1) {

    // if body
    } elseif ($expr2) {
      // elseif body
    1. } else {
    2. // else body;
    3. }
    4. 코드 복사
    키워드 elseif를 사용해야 합니다. 모든 제어 키워드가 단일 단어로 표시되도록 하려면 else를 모두 대체합니다. 5.2.스위치와 케이스
    표준 스위치 구조는 다음 코드와 같습니다. 괄호, 공백, 중괄호의 위치에 주의하세요.

    case 문 스위치를 기준으로 들여쓰기되어야 하며, break 문과 Case 내의 다른 문은 사례를 기준으로 들여쓰기되어야 합니다.

    문을 통해 비어 있지 않은 케이스가 있는 경우 // no break in the body와 유사한 주석이 있어야 합니다.



    스위치($expr) {

    케이스 0:
    echo '첫 번째 케이스, 중단 있음';
      break;
    1. 사례 1:
    2. echo '떨어지는 두 번째 사례';
    3. // 중단 없음
    4. 사례 2:
    5. 사례 3:
    6. 사례 4:
    7. echo '세 번째 경우, break 대신 return';
    8. return;
    9. default:
    10. echo 'Default case';
    11. break;
    12. }
    13. 코드 복사
    14. 5.3. 동안과 하는 동안

      표준 while 문은 다음과 같아야 합니다. 대괄호, 공백 및 중괄호의 위치에 주의하세요.

      1. while ($expr) {
      2. // 구조체 본문
      3. }
      코드 복사

      표준 do while문은 다음과 같습니다. 이번에도 대괄호, 공백, 중괄호의 위치에 주의하세요.

      1. do {
      2. // 구조체 본문;
      3. } while ($expr);
      코드 복사
      5.4.

      문의 기준은 다음과 같으니 괄호, 공백, 중괄호의 위치에 주의하세요.

      1. for ($i = 0; $i < 10; $i ) {
      2. // 본문
      3. }
      코드 복사
      5.5.

      표준 foreach 문은 다음과 같습니다. 대괄호, 공백, 중괄호의 위치에 주의하세요.

      1. foreach ($iterable as $key => $value) {

      2. // foreach 본문
      3. } 코드 복사5.6.

        표준 try catch 문은 다음과 같습니다. 대괄호, 공백 및 중괄호의 위치에 주의하세요.

        1. try {
        2. // try body
        3. } catch (FirstExceptionType $e) {
        4. // catch body
        5. } catch (OtherExceptionType $e) {
        6. // 본문 잡기
        7. }
        코드 복사

        클로저


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

        여는 중괄호

        는 선언문과 같은 줄에 , 닫는 중괄호 는 본문이 끝나는 줄 바로 뒤에 와야 합니다.

        매개변수 목록과 변수 목록에서는 왼쪽 괄호 뒤, 오른쪽 괄호 앞에

        공백이 없어야 합니다. 매개변수 및 변수 목록에서

        에는 쉼표 앞에 공백이

        있으면 안 되고, 에는 쉼표 뒤에 공백이 있어야 합니다. 클로저에 기본값이 있는 매개변수

        는 목록 끝에

        배치되어야 합니다. 표준 클로저 선언문은 다음과 같으니 괄호, 쉼표, 공백, 중괄호의 위치에 주의하세요.

        $closureWithArgs = function ($arg1, $arg2) {
      4. // 본문
      5. };
      6. $closureWithArgsAndVars = function ($arg1, $arg2) use ($var1, $var2) {
      7. // body
      8. };
      코드 복사
      매개변수 목록과 변수 목록

      여러 줄로 나눌 수 있으므로 첫 번째 항목을 포함한 각 매개변수나 변수는 별도의 줄에 있어야 하고, 닫는 괄호는 목록은 닫는 괄호와 동일합니다. 패키지의 여는 중괄호 는 같은 줄에 배치되어야 합니다.

      다음 예에는 매개변수 및 변수 목록이 여러 줄로 구분되는 여러 사례가 포함되어 있습니다.

        $longArgs_noVars = 함수(
      1. $longArgument,
      2. $longerArgument,
      3. $muchLongerArgument
      4. ) {
      5. // 본문
      6. };
      7. $noArgs_longVars = function () 사용 (
      8. $longVar1,
      9. $longerVar2,
      10. $muchLongerVar3
      11. ) {
      12. / / body
      13. };
      14. $longArgs_longVars = 함수(
      15. $longArgument,
      16. $longerArgument,
      17. $muchLongerArgument
      18. ) 사용(
      19. $longVar1,
      20. $longerVar2,
      21. $muchLongerVar3
      22. ) {
      23. // 본문
      24. };
      25. $longArgs_shortVars = 함수(
      26. $longArgument,
      27. $longerArgument,
      28. $muchLongerArgument
      29. ) 사용($var1) {
      30. // 본문
      31. };
      32. $shortArgs_longVars = 함수($arg) 사용(
      33. $longVar1,
      34. $longerVar2 ,
      35. $muchLongerVar3
      36. ) {
      37. // body
      38. };
      코드 복사
      클로저가 직접 사용된다는 점에 유의하세요. 위의 규칙은 함수나 메서드에 대한 인수를 호출할 때 여전히 적용됩니다.

        $foo->bar(
      1. $arg1,
      2. 함수($arg2) 사용($var1) {
      3. // 본문
      4. },
      5. $arg3
      6. );
      코드 복사

      요약


      위 사양에는 다음을 포함하되 이에 국한되지 않는 일부 감독이 불가피하게 있습니다.

      전역 변수 및 상수 정의

      기능의 정의

      연산자와 임무

      인라인 정렬

      주석 및 문서 블록

      클래스명의 접두사와 접미사

      모범 사례

      이 사양의 후속 개정 및 확장은 위의 단점을 보완할 것입니다.

      부록 A. 설문지

      이 사양을 작성하기 위해 팀에서는 각 구성원 프로젝트의 공통 사양에 대한 통계를 수집하기 위한 설문지를 개발했습니다.
      다음은 이번 설문 조사의 데이터이며 여기에서 검토할 수 있습니다.

      A.1. 설문지 데이터
      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:-Coding,http://drupal.org/coding -표준,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,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
      2. 투표,예,예,예,예,예,예,예,예,예,예 ,예,예,예,예,예,아니요,아니요,아니요,?,예,아니요,예
      3. indent_type,4,4,4,4,4,tab,4,tab,tab,2,4 ,탭,4,4,4,4,4,4,탭,탭,4,탭
      4. line_length_limit_soft,75,75,75,75,no,85,120,120,80,80,80,no,100,80 ,80,?,?,120,80,120,no,150
      5. line_length_limit_hard,85,85,85,85,no,no,no,no,100,?,no,no,no,100,100,?,120,120 ,no,no,no,no
      6. class_names,studly,studly,studly,studly,studly,studly,studly,studly,studly,studly,studly,lower_under,studly,lower,studly,studly,studly,studly,? ,스터들리,스터들리,스터들리
      7. class_brace_line,다음,다음,다음,다음,다음,동일,다음,동일,동일,동일,다음,다음,다음,다음,다음,다음,다음,다음,동일 ,다음,다음
      8. 상수_이름,upper,upper,upper,upper,upper,upper,upper,upper,upper,upper,upper,upper,upper,upper,upper,upper,upper,upper,upper,upper,upper ,upper
      9. 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
      10. 방법_이름,낙타, 낙타, 낙타, 낙타, 낙타, 낙타, 낙타, 낙타, 낙타, 낙타, 낙타, lower_under, 낙타, 낙타, 낙타, 낙타, 낙타, 낙타, 낙타, 낙타, 낙타, 낙타
      11. method_brace_line,다음,다음,다음,다음,다음,동일,다음,동일,동일,동일,동일,다음,다음,동일,다음,다음,다음,다음,다음,동일,다음,다음
      12. control_brace_line ,같은,같은,같은,같은,같은,같은,다음,같은,같은,같은,같은,다음,같은,같은,다음,같은,같은,같은,같은,같은,같은,다음
      13. control_space_after,yes ,예,예,예,예,아니요,예,예,예,예,아니요,예,예,예,예,예,예,예,예,예,예
      14. always_use_control_braces,예,예 ,예,예,예,예,아니요,예,예,예,아니요,예,예,예,예,아니요,예,예,예,예,예,예
      15. else_elseif_line,동일,동일,동일 ,동일,동일,동일,다음,동일,동일,다음,동일,다음,동일,다음,다음,동일,동일,동일,동일,동일,동일,다음
      16. 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
      17. 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
      18. closing_php_tag_required,no,no,no,no,no,no,no,no,yes ,아니요,아니요,아니요,아니요,예,아니요,아니요,아니요,아니요,아니요,예,아니요,아니요
      19. line_endings,LF,LF,LF,LF,LF,LF,LF,LF,?,LF ,?,LF,LF,LF,LF,?,,LF,?,LF,LF,LF
      20. static_or_visibility_first,static,?,static,either,either,either,visibility,visibility,visibility,either,static, 어느 쪽,?,가시성,?,?,둘 중,둘 중,가시성,가시성,정적,?
      21. control_space_parens,no,no,no,no,no,no,yes,no,no,no,no,no, no,yes,?,no,no,no,no,no,no,no
      22. blank_line_after_php,no,no,no,no,yes,no,no,no,no,yes,yes,no,no, 예,?,예,예,아니요,예,아니요,예,아니요
      23. class_method_control_brace,다음/다음/동일,다음/다음/동일,다음/다음/동일,다음/다음/동일,다음/다음/ 동일, 동일/동일/동일, 다음/다음/다음, 동일/동일/동일, 동일/동일/동일, 동일/동일/동일, 동일/동일/동일,다음/다음/다음,다음/다음/동일, 다음/동일/동일,다음/다음/다음,다음/다음/동일,다음/다음/동일,다음/다음/동일,다음/다음/동일,다음/다음/동일,동일/동일/동일,다음/다음/동일,다음/ 다음/다음
      코드 복사
      A.2. 설문지 지침

      indent_type:
      들여쓰기 유형. tab = "탭 키를 한 번 사용", 2 또는 4 = "공백 수"

      line_length_limit_soft:
      한 줄당 문자 수에 대한 "소프트" 제한 ? = 답변 없음 또는 답변 없음, 아니요는 제한이 없음을 의미합니다.

      line_length_limit_hard:
      한 줄당 문자 수에 대한 "하드" 제한 ? = 답변 없음 또는 답변 없음은 제한이 없음을 의미합니다.

      class_names:
      클래스 이름. lower = 소문자만 허용, lower_under = 밑줄로 구분된 소문자, StudlyCase 카멜 케이스 스타일.

      class_brace_line:
      클래스의 여는 중괄호가 class 키워드와 같은 줄에 있나요, 아니면 다음 줄에 있나요?

      constant_names:
      클래스의 상수 이름을 지정하는 방법은 무엇입니까? 대문자 = 밑줄로 구분된 대문자.

      true_false_null:
      키워드 true, false 및 null은 모두 소문자인가요 아니면 모두 대문자인가요?

      method_names:
      메서드 이름을 어떻게 지정하나요? camel = camelCase, 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:
      정적 메서드를 선언할 때 static을 액세스 한정자 앞이나 뒤에 작성해야 합니까?

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

      blank_line_after_php:
      PHP 시작 태그 뒤에 빈 줄이 필요합니까?

      class_method_control_brace:
      클래스, 메소드 및 제어 구조에서 중괄호 통계를 시작합니다.

      A.3. 설문지 통계 결과
      1. indent_type:
      2. 탭: 7
      3. 2: 1
      4. 4: 14
      5. line_length_limit_soft:
      6. ?: 2
      7. 아니요: 3
      8. 75:4
      9. 80:6
      10. 85:1
      11. 100:1
      12. 120:4
      13. 150:1
      14. line_length_limit_hard:
      15. ?: 2
      16. no: 11
      17. 85: 4
      18. 100: 3
      19. 120: 2
      20. class_names:
      21. ?: 1
      22. lower: 1
      23. lower_under: 1
      24. Studly: 19
      25. class_brace_line:
      26. next: 16
      27. same: 6
      28. constant_names:
      29. upper: 22
      30. true_false_null:
      31. lower: 19
      32. upper: 3
      33. method_names:
      34. camel: 21
      35. lower_under: 1
      36. method_brace_line:
      37. next: 15
      38. same: 7
      39. control_brace_line:
      40. next: 4
      41. same : 18
      42. control_space_after:
      43. 아니요: 2
      44. 예: 20
      45. always_use_control_braces:
      46. 아니요: 3
      47. 예: 19
      48. else_elseif_line:
      49. 다음: 6
      50. 동일: 16
      51. case_break_indent_from_switch:
      52. 0/1: 4
      53. 1/1: 4
      54. 1/2: 14
      55. function_space_after:
      56. 아니오: 22
      57. closing_php_tag_required:
      58. 아니오: 19
      59. 예: 3
      60. line_endings:
      61. ?: 5
      62. LF: 17
      63. static_or_visibility_first:
      64. ?: 5
      65. 둘 중 하나: 7
      66. 정적: 4
      67. 가시성: 6
      68. control_space_parens:
      69. ?: 1
      70. 아니요: 19
      71. 예: 2
      72. blank_line_after_php:
      73. ?: 1
      74. 아니요: 13
      75. 예 : 8
      76. class_method_control_brace:
      77. 다음/다음/다음: 4
      78. 다음/다음/동일: 11
      79. 다음/동일/동일: 1
      80. 동일/동일/동일: 6
      코드 복사

      Github(PizzaLiu)에서 재인쇄

    PHP, PSR


    성명:
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.