2011. 5. 18. 10:58
PHP 코딩 규칙 v1
2011. 5. 18. 10:58 in 팁&테크/PHP
개인적으로 사용하는 코딩규칙임
일반
PHP태그는 <?php ?> 형태로 한다. short open tag 허용 안함. (<? ?>)
<?php echo $var ?> 허용
<?=$var?> 불가
코드의 마지막이 PHP로 이루어져있을 경우 ?> 는 반드시 생략.
배열, 함수인자등 , 다음에는 반드시 공백을 넣을것.
array(1, 2, 3, 4);
function($a, $b, $c);
탭
탭은 공백 4개 사용, 탭문자 사용 불허
파일인코딩
파일 저장 인코딩 방식은 기본 UTF-8 (BOM 없음)
클래스
Camel Case 방식 각단어의 첫글자는 대문자
예) class MyOwnClass
선언
class MyOwnClass {
}
메소드
예) public function myOwnMethod()
선언
public function myOwnMethod() {
}
함수
예) function my_function()
선언
function my_function() {
}
상수명
예) MY_CONSTANT
TRUE, FALSE, NULL 대문자 사용
변수명
예) $my_vars
가변변수 사용시 {}를 사용, $$ 사용금지
${$var1} = 'value';
문자열
$var = "내 이름은 {$name}입니다.";
$var = '내 이름은'.$name.'입니다.';
DB
- 오라클,MSSQL 및 몇몇 DB 라이브러리의 경우 일괄적으로 대/소문자만으로 변환되어 사용되어
혼란이 야기됨
예) ORACLE은 기본적으로 대문자를 사용하므로 Camel Case로 만들경우 구분이 어려움
예) MSSQL은 대소문자 구분하지 않으나 PHP에서는 배열index의 대소문자를 구분하므로 혼란스러움
DB예약어는 대문자, 필드/테이블/뷰등 사용자가 정의한 object는 소문자를 사용
짧은 쿼리
$query = "SELECT field FROM table WHERE field=1";
긴쿼리
$query = "SELECT field, field, field "
."FROM table "
."WHERE field = 1";
배열
$ar = array(1, 2, 3, 4);
배열값을 여러줄로 나눌경우 ,는 값 뒤쪽에 위치하도록 함
$ar = array(
1,
2,
);
배열선언시 아래와 같은 형태로만 선언할 것
한줄
$ar = array(1, 2, 3, 4);
여러줄
$ar = array(
1,
2,
);
$ar = array(
'key1' => 'value1',
'key2' => 'value2'
);
명령구문 중간에서 여러줄 배열 선언시
$aa = implode('-',array(
1, 2, 3,
4, 5, 6, 3
));
$aa = implode('-',array(
'key1' => 'value1',
'key2' => 'value2'
));
FOR문 사용
for($i=0, $cnt=count($row); $i<$cnt; $i++) {
}
블럭
if() {
}
while() {
}
IF ELSE
if(조건) {
}
else {
}
elseif 는 사용하지 말고 else if를 사용함(몇몇 언어에서 elseif 지원안함 - javascript)
if(조건) {
}
else if(조건) {
}
else {
}
Switch
switch(조건) {
case 1 :
//문장
break;
defualt :
//문장
}
주석문
/**
*
* Enter description here ...
* @author wyseburn
*
*/
함수(메소드)내부, 프로그램 상에서는 단행 주석문 // 만 사용
불필요한 quote(', ") 사용금지
echo "$var";
$var = "$var1";
php.ini 설정함수(메소드)내부, 프로그램 상에서는 단행 주석문 // 만 사용
PHP기타
echo "$var";
$var = "$var1";
register_global = off
mysql 관련 함수
pdo 또는 mysqli 계열 함수만 사용할 것(pdo 추천)
PHP5.3에서 deprecated 된 함수 사용금지(PHP 6.0에서 완전히 제거될 예정임)
http://kr.php.net/manual/en/migration53.deprecated.php
디렉토리구조
_lib : 라이브러리(함수,클래스)
_model : 모델
_view : 뷰
public/뷰명/img : 이미지
public/뷰명/css : 개별 css
public/뷰명/js : 개별 js
디렉토리 : 일반/컨트롤러 디렉토리
파일명
func.파일명.php : 함수
class.파일명.php : 클래스
inc.파일명.php : 인클루드되는 파일
ajax.파일명.php : ajax호출파일
파일명_파일명.php : 주체(그룹)_동작(동사)_유형.php - 유형생략가능