PHP 표준 권고(PSR)

320x100

PSR이란?

수많은 사람들이 PHP를 사용하며, 현재는 Laravel framework가 가장 핫한 프레임워크이나, 이외에도 코드 이그나이터, 심포니, CakePHP 등 다양한 프레임워크들이 존재하며, 이 프레임워크를 사용한 다양한 코드들이 존재할 것이다.

 

읽기 쉽고 통일성 있는 코드를 작성하게 된다면 프레임워크 내부 함수를 직접 확인할 때, 다른 사람과 협업하고 이직할 때에도 적응하기 쉬울 것이다.

 

이를 위해 PHP를 사용하는 프로그래머들에게 전 세계 공통으로 하는 일종의 코딩 표준을 제시한 것이 바로 PSR이다.

 

실제로 프레임워크들 또한 최근 업데이트한 코드들을 PSR을 지키며 개발하고자 노력하고, 모든 표준에 맞출 수는 없겠지만, 가능한 지키고자 노력하다 보면 조금 더 깔끔하고 알아보기 쉬운 코드를 작성할 수 있을 거라 생각한다.

 

PSR 종류

2023년 7월 기준 공식 사이트에서 확인한 PSR은 0~22까지 존재한다.

'PSR-숫자' 형식을 갖고 있는데, 해당 숫자마다 주로 다루는 타이틀이 존재하며, 일반적인 코딩 표준, 로깅, 이벤트 등 많은 권고가 존재하나, 역시 문서를 하나 하나 다 외울 수는 없듯이 PSR 또한 가장 중요한 내용만이라도 익혀야 한다.

 

그중에서 가장 기초가 되는 PSR-1과 PSR2를 알아보고자 한다.

 

PSR-1 : basic coding standard

<?php
// 반드시 '<?php?'와 '<?=' 태크만을 사용해야 한다.

// 상수는 반드시 대문자와 밑줄만으로 작성해야 한다
REPRESENT_NUMBER = 1;

 

PSR-2 : coding style guide

<?php
// namespace 선언 뒤 한 줄의 공백을 사용한다.
namespace app\contorller;

// use문은 공백없이 선언한 뒤, 마지막 한 줄만 공백을 사용한다.
use FirstClass;
use SecondClass;

// 클래스는 반드시 대문자로 시작하며, 중괄호의 시작 전 개행해야 한다.
class PsrController
{
    // 들여쓰기는 tab 대신 4칸의 공백을 사용한다
    echo '출력';

    // 함수는 반드시 calmelCase로 작성하며, 중괄호의 시작 전 개행해야 한다.
    function compareNumber(a, b) 
    {
        // if문 이후의 한 줄의 공백을 두며, 중괄호는 같은 줄에서 시작한다.
        if (a > b) {
            return a;
        } else {
            return b;
        }
    }
}
// 닫는 태크는 사용하지 않는다. (?>)

 

사실, 위와 같은 코딩 표준의 대부분은 타 언어를 사용할 때에도 비슷하기 때문에 익히기 어려울 것 같지는 않다.

다만, 내가 다뤘던 언어들 기준으로 대부분은 클래스, 함수, 조건문, 반복문 중괄호 위치의 경우, 전부 개행을 하거나 전부 개행하지 않는 방식으로 통일했었는데, 클래스와 함수, 조건문과 반복문의 개행 위치가 다르다는 점은 눈여겨 봐야 할 것 같다.

320x100

'PHP' 카테고리의 다른 글

PHP 기본 문법 요약  (0) 2023.06.30
[PHP & Laravel] JWT Token 방식 구현  (0) 2023.06.23
PHP 전체 개발 환경 정리  (0) 2023.03.28
Java 프로그래머가 PHP를 시작하는 방법  (0) 2023.03.01