상위 문서: 라이믹스/매뉴얼
개요[편집 / 원본 편집]
라이믹스 코어에 기여할 때 적용하는 공식 코딩 규칙을 정리한 문서이다. 실제 변경 대상의 .editorconfig와 기존 코드도 함께 확인한다. 공식 규칙이 별도로 정하지 않은 부분은 PSR-1·PSR-12를 따른다.
파일과 들여쓰기[편집 / 원본 편집]
- 문자 인코딩은 BOM 없는 UTF-8, 줄바꿈은 LF를 사용한다.
- 기본 들여쓰기는 탭 하나이다. Markdown·YAML 등 공백을 사용하는 파일은 기존 형식을 유지한다.
- 들여쓰기 목적으로 탭과 공백을 섞지 않는다.
- PHP만 들어 있는 파일은 끝의
?>를 생략한다. - EditorConfig를 지원하는 편집기에서는 프로젝트의 설정을 활용한다.
괄호와 공백[편집 / 원본 편집]
PHP의 클래스·함수·조건문·반복문은 여는 중괄호를 다음 줄에 둔다. 명령이 하나여도 중괄호를 사용한다.
if ($enabled)
{
$result = getResult($id, $options);
}
함수명과 호출 괄호 사이에는 공백을 넣지 않고, 인자를 나누는 쉼표 뒤에는 한 칸을 둔다. 비교 연산자 양쪽에도 공백을 둔다. if 같은 키워드 뒤에는 한 칸을 권장하지만 XE 시절 코드 주변에서는 기존 스타일을 유지할 수 있다.
클로저는 같은 줄에 중괄호를 둘 수 있으며, JavaScript도 언어 특성에 맞게 같은 줄의 중괄호를 허용한다.
$double = function($value) { return $value * 2; };
여러 줄의 PHP 배열은 마지막 항목 뒤에도 쉼표를 남긴다. JSON에는 마지막 쉼표를 쓰지 않는다. 공식 코딩 규칙은 JavaScript 배열에도 마지막 쉼표를 남기지 않는 방식을 안내한다.
주석과 PHPDoc[편집 / 원본 편집]
주석은 관련 코드나 조건문 바로 위에 둔다. 원칙적으로 영어의 완전한 문장을 사용하며, 클래스와 함수에는 /**로 시작하는 PHPDoc 주석을 붙인다. 파라미터와 반환값을 실제 코드와 일치시킨다.
/**
* Return the number of items.
*
* @return int
*/
public function getCount(): int
{
return $this->_count;
}
이 예제의 $_count 속성은 해당 클래스에 선언되어 있다고 가정한다.
가시성과 타입[편집 / 원본 편집]
새 클래스 메서드는 가시성·파라미터 타입·반환 타입을 명시한다. public이 아닌 메서드와 속성의 이름은 원칙적으로 언더바로 시작한다. 하위 호환성 때문에 엄격한 선언을 할 수 없는 경우는 예외이다.
코어가 지원하는 모든 PHP 버전에서 실행할 수 있어야 한다. 개발자 PC의 PHP에서만 동작하는 문법을 무조건 도입하지 않는다. 특정 버전에만 존재하는 기능은 호환성 검사와 대체 동작을 마련한다. 문자열·정수 비교에는 가능하면 ===를 사용하고, 타입 변환이 필요하면 의도를 명시한다.
네임스페이스 안에서 전역 상수를 참조할 때는 \RX_CLIENT_IP처럼 전역임을 드러내는 표기를 사용한다.
커밋과 PR[편집 / 원본 편집]
커밋 메시지는 가능하면 영어의 동사원형으로 시작하는 명령형으로 쓴다. 한국어도 가능하며 변경 위치와 동작을 구체적으로 설명한다.
Fix thumbnail generation for missing images
회원정보 수정 시 오류 메시지 표시 개선
‘함수 개선’처럼 무엇이 달라지는지 알 수 없는 제목은 피한다. PR과 관계없는 스타일 수정은 별도 변경으로 나눈다. 라이믹스/매뉴얼/GitHub 이슈 및 PR 작성도 참고한다.
오류·의존성과 프론트엔드[편집 / 원본 편집]
- 기본 오류 설정에서 notice·deprecated를 포함한 오류가 발생하지 않도록 한다.
- 라이브러리 버전은 코어의 지원 PHP 범위와 맞춘다. 의존성을 갱신할 때는 대상 브랜치의 설치·배포 절차도 확인한다.
- CSS·JS는 사용자가 수정할 수 있는 원본 형태를 제공한다. 공개 원본이 있는 외부 라이브러리의 압축본은 공식 규칙의 예외에 해당한다.
- 공식 문서의 과거 버전 예시는 현재 지원 범위와 구분하여 읽는다.
같이 보기[편집 / 원본 편집]
출처[편집 / 원본 편집]
이 문서는 라이믹스 공식 매뉴얼을 바탕으로 설명과 예제를 정리하였다. 공식 매뉴얼은 CC BY-SA 4.0으로 배포된다. 원문의 기여 이력은 rhymix-docs 저장소에서 확인할 수 있다.
| 라이믹스 · 설치·운영·개발 매뉴얼 둘러보기 | |
|---|---|
| 설치·이전 | 설치 환경 · 설치 · 업데이트 · XE에서 이전 · 호환성 점검 · nginx · 도메인 변경 |
| 운영 | 백업·복원 · 업로드·서버 진단 · 캐시·성능 · Crontab · 보안 · 릴리즈 노트 |
| 개발 | 확장 기능 제작 · 애드온 · DB 연산자 · 라우터 · 이벤트 · 개발 보안 |
| 테마·API | 테마 제작 · 템플릿 v1 · 템플릿 v2 · 프레임워크 · PHP 전역 함수 · JS 라이브러리 · JS 함수 · 레거시 JS 함수 · String 확장 |
| 기여·연동 | 이슈·PR · 코딩 규칙 · 라이선스 · IP 대역 · 시간대 · 포토스와이프 · 모바일 푸시 · 네모의 꿈 색상 |