From 0a38218bdbc8ff147541a3ac8b38c9eecf2fb3d5 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Sat, 9 Jan 2016 14:42:56 +0900 Subject: [PATCH] Update contributor guide --- CONTRIBUTING.md | 67 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 63 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b5af465e0..5af7cafbf 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,11 +2,15 @@ ## 이슈 작성 +- **구글에서 답을 찾을 수 있는지 먼저 확인해 주십시오.** - 관련된 이슈가 이미 있는지 검색하고, 같은 내용이라면 댓글로 덧붙여 주십시오. 오래된 이슈라도 메일로 알림이 전달되므로 묻힐 염려가 없습니다. -- 무관한 이슈에 댓글을 달지 말아 주십시오. +- 무관한 이슈에 댓글을 달지 말아 주십시오. 엉뚱한 사람에게 메일 알림이 전달됩니다. - 2가지 이상 서로 다른 문제가 있는 경우, 각각 이슈를 등록해 주십시오. -- 버그 신고에는 아래의 내용을 반드시 포함시켜 주십시오. +- **버그 신고 전 자신의 서버가 RhymiX의 실행 환경을 충족하는지 확인해 주십시오.** + - PHP 5.3 미만, EUC-KR 환경, 퍼미션 오류 등은 호스팅 업체에 문의하셔야 합니다. + - 자신의 서버 환경은 `phpinfo`를 사용하여 확인할 수 있습니다. +- **버그 신고에는 아래의 내용을 반드시 포함시켜 주십시오.** - 실행 환경 - 호스팅 환경에 대한 간단한 설명 (예: ○○24 리눅스 웹호스팅) - RhymiX 버전 (예: 1.8.15) @@ -32,6 +36,8 @@ ## 코딩 규칙 +### 일반 + PHP, HTML, XML, CSS, JS 등 모든 텍스트 파일의 문자셋은 BOM이 없는 UTF-8입니다. 줄바꿈 문자는 유닉스 방식(`LF`)을 따릅니다. @@ -42,10 +48,10 @@ PHP, HTML, XML, CSS, JS 등 모든 텍스트 파일의 문자셋은 BOM이 없 들여쓰기는 1개의 탭으로 합니다. 단, 탭 대신 공백을 사용하는 파일에서는 일관성 유지를 위해 4칸의 공백을 사용할 수 있습니다. -RhymiX에서 정한 `error_reporting` 설정 하에서 어떤 에러도 발생하지 않도록 하는 것을 목표로 합니다. - PHP 코드만으로 이루어진 파일은 맨 끝에 `?>` 태그를 사용하지 않습니다. +### 공백 및 줄바꿈 규칙 + 클래스 및 함수 선언과 `if`, `for`, `foreach`, `while` 등의 중괄호는 다음 줄에 씁니다. class Foo @@ -83,6 +89,59 @@ PHP 코드만으로 이루어진 파일은 맨 끝에 `?>` 태그를 사용하 if($foo === $bar) // OK for XE Compatibility if($foo==$bar){ // WRONG +### 주석 + +주석은 관련 코드 윗줄에 써야 합니다. 조건문이나 루프의 경우에도 마찬가지입니다. + + // If foo is bar, do something. + if ($foo->isBar()) + { + // Note: this will do X, Y, and Z. + $foo->doSomething(); + } + // Otherwise, do something else. + else + { + // TODO: Refactor this later. + $foo->doSomethingElse(); + } + +모든 클래스와 함수에는 `/**`으로 시작하는 PHPDoc 방식의 주석을 붙여야 합니다. +PHPDoc 주석 작성에 어려움이 있는 경우, 다른 클래스와 함수의 주석을 참고하십시오. + + /** + * This is the Foo class. + */ + class Foo + { + /** + * Constructor. + * + * @param string $member_srl + */ + public function __construct($member_srl) + { + // 생략 + } + + /** + * Check if this Foo is bar. + * + * @return bool + */ + public function isBar() + { + return true; + } + } + +불가피한 경우를 제외하면 주석은 영문으로 쓰는 것을 원칙으로 하며, +대문자로 시작하는 완전한 문장으로 이루어져야 합니다. + +### 기타 + +RhymiX에서 정한 `error_reporting` 설정 하에서 어떤 에러도 발생하지 않도록 하는 것을 목표로 합니다. + 문자열과 문자열, 정수와 정수를 비교할 때는 가능하면 `==` 대신 `===`을 사용합니다. 실제 자료형이 다를 가능성이 있는 경우 `intval()`, `strval()` 등의 함수와 함께 사용합니다.