PHP - 코딩 표준

안녕하세요, 미래의 PHP 개발자 여러분! PHP 코딩 표준의 매력적인 세상을 안내해드리게 되어 기쁩니다. 프로그래밍을 가르쳐온 지 오래된 저는, 이 표준을 습득하면 코드가 더 깨끗해지고, 더 읽기 쉬워지고, 더 전문적이 될 것이라 확신합니다. 시작해보겠습니다!

PHP - Coding Standard

缩进과 줄 길이

적절한 缩进은 코딩에서의 예절 같은东西 - 모든 것을 더 기쁘고 이해하기 쉽게 만듭니다. PHP에서는 일반적으로 각 缩进 레벨에 4개의 공간을 사용합니다. 다음은 예입니다:

<?php
if ($condition) {
    echo "This line is indented";
    if ($another_condition) {
        echo "This line is indented even more";
    }
}

이 예제에서, 첫 번째 echo 문은 한 단계 缩进되었고 (4개의 공간), 두 번째 echo 문은 두 단계 缩进되었습니다 (8개의 공간). 이 시각적 계층 구조는 코드 구조를 빠르게 이해하는 데 도움이 됩니다.

줄 길이는 80자 이하로 유지하려고 노력하세요. 줄이 너무 길어지면 다음과 같이 여러 줄로 나눕니다:

$very_long_variable_name = $another_long_variable_name
    + $yet_another_long_variable_name
    + $one_more_long_variable_name;

제어 구조

제어 구조는 프로그램의 논리의 기본 블록입니다. PHP에서 가장 일반적인 것은 if, else, elseif, while, for, 그리고 switch입니다. 이들의 올바른 형식은 다음과 같습니다:

if ($condition1) {
    // 코드 여기에
} elseif ($condition2) {
    // 더 많은 코드 여기에
} else {
    // 그리고 더 많은 코드 여기에
}

while ($condition) {
    // 반복할 코드
}

for ($i = 0; $i < 10; $i++) {
    // 반복할 코드
}

switch ($variable) {
    case 1:
        // case 1에 대한 코드
        break;
    case 2:
        // case 2에 대한 코드
        break;
    default:
        // 기본 코드
        break;
}

각 코드 블록이 중괄호 {}로 둘러싸여 있고 적절히 缩진되었음에 유의하세요.

함수 호출

함수 호출 시 함수 이름과 열리는 괄호 사이에는 공간이 없어야 합니다. 다음은 올바른 방법입니다:

$result = myFunction($arg1, $arg2);

함수 호출이 너무 길다면 여러 줄로 나눕니다:

$result = myVeryLongFunctionName(
    $arg1,
    $arg2,
    $arg3,
    $arg4
);

함수 정의

함수를 정의할 때 다음 형식을 따릅니다:

function myFunction($arg1, $arg2 = null)
{
    // 함수 본문
}

注의 개시 부분 {은 새 줄에 있어야 합니다. 이를 "Allman style"이라고 부르며, PHP에서 흔합니다.

주석

주석은 코드를 설명하는 데 필수적입니다. 충분히 사용하세요! PHP에서 사용할 수 있는 주석 유형은 다음과 같습니다:

// 이는 단일 줄 주석입니다

/*
이는 여러 줄 주석입니다.
여러 줄을跨ぐ 수 있습니다.
*/

/**
 * 이는 DocBlock 주석입니다.
 * 함수, 클래스 등을 문서화하는 데 사용됩니다.
 *
 * @param string $arg1 첫 번째 인수에 대한 설명
 * @return bool 함수가 반환하는 것에 대한 설명
 */
function myDocumentedFunction($arg1)
{
    // 함수 본문
}

PHP 코드 태그

PHP 코드를 작성할 때 항상 전체 PHP 태그를 사용하세요:

<?php
// 여기에 PHP 코드 작성
?>

단축 태그 <?는 모든 서버에서 항상 활성화되지 않으므로 사용하지 마세요.

변수 이름

변수 이름은 설명적이고 소문자와 밑줄을 사용하여 (snake_case) 작성합니다:

$user_name = "John";
$total_items = 5;

상수는 모두 대문자와 밑줄을 사용하여 작성합니다:

define('MAX_USERS', 100);

함수 재진입성

재진입성 있는 함수는 실행 중간에 중단되고 안전하게 다시 호출될 수 있는 함수입니다. 이를 달성하기 위해 함수 내에서 전역 변수나 정적 변수를 사용하지 마세요. 다음은 예제입니다:

// 재진입성이 없음
function badCounter()
{
    static $count = 0;
    return ++$count;
}

// 재진입성이 있음
function goodCounter($count)
{
    return ++$count;
}

선언 블록 정렬

여러 변수를 선언할 때 정렬하여 가독성을 높입니다:

$short        = 1;
$long_variable = 2;
$longer_variable = 3;

한 줄당 하나의 문장

명확성을 위해 한 줄에 하나의 문장만 작성하세요:

$a = 1;
$b = 2;
$c = 3;

다음과 같이 작성하지 마세요:

$a = 1; $b = 2; $c = 3; // 이는 읽기 어렵습니다

짧은 메서드나 함수

함수는 짧고 단일 작업에 집중하도록 유지하세요. 일반적인 규칙으로, 함수가 20-30줄 이상이라면 작은 함수로 나누고 고려하세요.

이 표는 우리가 논의한 주요 PHP 코딩 표준을 요약합니다:

표준 예제
缩进 4개 공간 사용
줄 길이 80자 이하로 유지
함수 호출 myFunction($arg1, $arg2);
함수 정의 function myFunction($arg1, $arg2) { ... }
변수 이름 snake_case 사용: $user_name
상수 UPPER_CASE 사용: MAX_USERS
주석 //, /* */, /** */ 사용
PHP 태그 항상 <?php ?> 사용

이 표준들은 단순한 규칙이 아닙니다. PHP 커뮤니티에서 수년 동안 개발된 베스트 프랙티스로, 코드를 더 읽기 쉽고 유지보수하기 쉽게 만듭니다. 이 표준을 따르면, 단순히 코드를 작성하는 것이 아니라, 미래에 당신의 코드를 작업할 다른 개발자들과 소통하는 것입니다. 마무리하며, 한 학생이 말한 것을 떠올립니다. "코딩 표준을 배우는 것은 테이블 매너를 배우는 것과 같습니다.처음에는 귀찮게 느껴지지만, 익숙해지면 그 없이는 어떻게 살 수 있었을까라는 생각이 듭니다!" 이 표준들을 계속 연습하면, 곧 두 번째 nature가 될 것입니다. 즐거운 코딩을 기원합니다!

Credits: Image by storyset