The Pursuit of Happyness

php-fig +1

PHP 표준 권장안


http://www.hanbit.co.kr/book/look.html?isbn=978-89-6848-225-0


PHP에는 다른 언어들과 달리 콤포넌트를 이용하여 코드를 재활용하는 부분이 어려웠는데, 표준 (코딩 규약이나 composer 등) 을 이용하면 누군가 훌륭한 사람들이 만들어 놓은 많은 라이브러리를 활용하여 빠르고 안정적인 코딩이 가능하다.


PSR - PHP Standard Recommendation (PHP 표준 권장안)


http://www.php-fig.org/psr/


현재 채택되어진 PSR-1, PSR-2, PSR-3, PSR-4, PSR-6, PSR-7 을 참고 (책에서는 PSR-6, PSR-7은 언급되지 않음)


- PSR-1 요약

-- 파일은 <?php 나  <? 태그만 사용해야 한다.

-- 파일은 BOM (byte order mark) 이 없는 UTF-8 인코딩을 사용한다.

-- 파일은 클래스, 함수, 상수 등의 심볼을 정의하거나 결과물을 만들어 내거나 세팅에 필요한 것들을 정의 해야 하며 두 가지를 같이 처리하지 않는다.

-- 네임스페이스와 클래스는 반드시 autoloading PSR을 따른다.

-- 클래스 이름은 첫글자를 대문자로 적는다.

-- 상수는 대문자와 언더스코어 (_) 만을 이용한다.

-- 메써드 이름은 낙타표기법을 따른다.


- PSR-2 요약

-- PSR-1을 따른다.

-- 띄어쓰기는 스페이스 4칸 (탭은 쓰지 말것!)

-- 라인 길이는 80자 이내로 하는 것을 권장한다. (No Hard Limit, Soft Limit 120)

-- 네임스페이스 선언 이후에는 한줄을 비운다. use 선언들 이후에도 한줄을 비운다.

-- 클래스 및 메써드를 여닫는 괄호는 다음줄에 한다.

-- 모든 속성과 메써드에는 가시성 키워드를 선언해야 하며, abstract 와 final 키워드는 가시성 키워드 앞에 온다. static 키워드는 가시성 키워드 뒤에 둔다. (ex final private static function functionName())

-- if, else 등의 제어 키워드 뒤에는 반드시 공백을 하나 둔다. 시작 괄호는 같은 줄에 끝나는 괄호는 내용이 끝난 다음 줄에 둔다. 시작괄호 뒤나 끝 괄호 앞에 공백을 둘 필요는 없다.


- PSR-3 은 Logger 사용에 대한 부분


- PSR-4 은 오토로더 사용법에 대한 부분으로 런타임시 필요에 따라 PHP 클래스, 인터페이스, 트레이스를 찾아 인터프리터로 불러오게 된다. PSR-4 오토로더 표준을 지원하는 PHP 컴포넌트와 프레임워크들은 단 하나의 오토로더만으로 인터프리터로 불러올 수 있다.

기존의 include, require 등을 사용하거나 제작자들만의 __autoload() spl_autoload_register() 함수를 이용하는 대신 파일시스템 디렉터리와 PHP 네임스페이스만으로 코드를 구성함으로써 기존 코드를 수정하지 않고도 사용이 가능하다. 네임스페이스에 있는 클래스, 인터페이스, 트레이트는 src/ 하위에 있는 디렉터리 혹은 PHP 파일에 매핑된다.


- PSR-6 은 Cache interface


- PSR-7 은 HTTP message interface 



Comment +0