(3), 함수 이름은 소문자 + 밑줄로 작성됩니다. 예를 들어 function http_send_post()
(4), 변수 이름은 소문자로 작성됩니다. $userName과 같은 사례 작성
6. 함수 주석, 변수 주석 등의 코드 주석 태그
일반적으로 사용되는 태그에는 @package, @var, @param, @return, @author, @todo, @가 포함됩니다. throws
required phpDocument 태그 규칙을 준수하고 새 태그를 생성하지 마세요. 더 많은 태그를 보려면 phpDocument 공식 웹사이트
7을 확인하세요. 비즈니스 모듈
(1) 여러 데이터 테이블 업데이트/추가 작업이 관련된 경우 가장 바깥쪽 레이어 트랜잭션을 사용해야 합니다.
(2), 모델 계층은 간단한 데이터 테이블 쿼리만 수행합니다.
(3), 비즈니스 논리는 논리 계층에 균일하게 캡슐화됩니다. 컨트롤러는 URL 라우팅만 수행하므로 비즈니스 메서드로 호출하지 마세요
(5). where(), order() 및 ThinkPHP 프레임워크의 기타 모델 메서드와 같은 SQL 작업 문은 컨트롤러 계층에 나타날 수 없습니다.
즉, 다음과 같은 SQL 문이 나타나지 않습니다. D('XXX')->where()->order()->limit()->find(); (), order(),limit() 등 SQL 메소드는 모델 레이어와 비즈니스 레이어에만 나타날 수 있습니다! 2. 코드 스타일 1. 네임스페이스(Namespace) 및 가져오기(Use) 선언 텍스트로 간단히 설명하겠습니다.
네임스페이스 선언 뒤에는 빈 줄이 있어야 합니다. 모든 가져오기 (use) 선언은 네임스페이스(namespace) 선언 아래에 위치해야 합니다.
문에는 import(use) 키워드가 하나만 있어야 합니다.
import(use) 선언 코드에는 공백이 있어야 합니다. 블록 뒤의 줄
코드를 사용하여 설명하세요.
1
2
3
4
5
6
namespace LibDatabases // 아래에 공백이 있어야 합니다.
class Mysql; {
}
네임스페이스 아래에 빈 줄을 놔두어야만 use를 사용할 수 있고, 다시 빈 줄을 두면 use를 사용할 수 있으며, class를 선언할 수 있습니다
1
2
3
4
5
6
7
less Bar;
use OtherVendorOtherPackageBazClass; // 아래에 빈 줄이 있어야 합니다 class Mysql {
}
2. 클래스, 속성 및 메서드
(1), 상속(확장) 및 구현(구현)은 클래스 이름과 같은 줄에 작성되어야 합니다.
1
2
3
4
5
6
네임스페이스 LibDatabaes;
class Mysql은 ParentClass를 확장하여 PDO, DB를 구현합니다. { //
}
(2) 속성은 공개, 보호 또는 비공개인지 여부를 선언해야 하며 var는 이전에 사용할 수 없습니다. PHP 버전은 어떤 방식으로 공개적으로 사용됩니까?
1
2
3
4
5
6
7
8
네임스페이스 L ib 데이터베이스;
class Mysql은 ParentClass를 확장합니다. 구현 PDO, DB { // 한 줄 쓰기
public $foo = null;
private $name = 'yangyi';
protected $age = '17';
}
(3), 메소드는 공개 여부를 선언해야 하며, 공개, 보호, 비공개 여부를 생략할 수 없습니다. 매개변수가 여러 개인 경우 첫 번째 매개변수 뒤에 ","를 추가하고 공백을 추가합니다: function_name($par, $par2, $pa3) 매개변수에 기본값이 있는 경우 "의 왼쪽과 오른쪽에 공백으로 구분합니다. =".
1
2
3
4
5
6
7
8
네임스페이스 L ib 데이터베이스;
class Mysql은 ParentClass를 확장합니다. 구현 PDO, DB { // 한 줄 쓰기
Public getInfo($name, $age, $gender = 1) { // 매개변수 사이에 공백이 있습니다. 기본 매개변수의 "=" 주위에 공백이 있고 )와 {
}
}
(4) 사이에 공백이 있습니다. abstract와 final을 사용할 경우 클래스를 만들 때 선언의 경우 가시성 선언(공개, 보호 또는 비공개) 앞에 배치되어야 합니다. 클래스 선언에 static을 사용하는 경우 가시성 선언 뒤에 배치해야 합니다.
코드로 직접 이동:
1
2
3
4
5
6
7
8
9
10
11
< ;? php
namespace VendorPackage;
abstract class ClassName {
protected static $foo; // static이 뒤에 배치됨
abstract protected function zim();
final public static function bar( ) { // final을 맨 앞에, static을 맨 뒤에 둡니다. + ~
3. 제어 구조
스위치 등의 제어 인터페이스 이러한 유형의 작성 표준은 문제가 발생하기 쉬우므로 표준화해야 합니다.
(1), if, elseif, else 작성 방법은 표준 코드로 가세요:
1
2
3
4
5
6
7
8
if ($expr1) { // if와 (사이에 공백이 있습니다. )와 {
} elseif ($expr2) { // elesif가 작성됩니다. 연속적으로 (,)와 { 사이에 공백이 있습니다
} else { // else 왼쪽과 오른쪽에 공백이 있습니다
}
(2) , 스위치, 케이스 공백과 줄바꿈에 주의하거나 표준 코드로 바로 이동하세요:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
스위치 { // 스위치 사이에 공백이 있습니다. and (, 사이에 공백이 있습니다. ) 및 {
case 0:
echo '첫 번째 경우, 중단 있음'; // 정렬
break; // 새 줄에 중단을 씁니다.
사례 1:
echo '두 번째 사례, 통과하는 경우';
// 중단 없음 사례 2:
사례 3:
사례 4:
echo '세 번째 사례, 중단 대신 반환' ;
반품;
(3), while, do while도 비슷하게 작성됩니다. 위 코드는
1
2
3
4
5
6
7
8
< ;?php
while ($expr) { // while과 (, 사이에 공백이 있습니다) 및 {
}
do { // do와 사이에 공백이 있습니다 { Space
} while ($expr); // while
왼쪽과 오른쪽에 공백이 있습니다. (4)
1
작성 방법 2
3
4
for ($i = 0; $i < 10; $i++) { // for와 ( 사이에 공백이 있고 이진 연산자로 둘러싸여 있음 " =", "<" 각각 공백이 있고, )와 {
}
사이에는 공백이 있습니다.
(5), foreach
1
2
3
4
foreach($key => $value로 $iterable) { / 작성 방법 / foreach와 ( 사이에 공백이 있고, "=>"의 왼쪽과 오른쪽에 공백이 있고, )와 {
}
(6) 사이에 공백이 있는데, 어떻게 쓰려면 catch
1
2
3
4
5
6
7
8
try { // 시도 space on the right
} catch (FirstExceptionType $e) { // catch와 (,) 사이에 공백이 있고 {
} 사이에 공백이 있습니다. catch (OtherExceptionType $e) { // 거기 는 catch와 (,)와 { 사이에 공백이 있습니다. {
}
사이에 공백이 있습니다.
4. 주석
(1), 줄 주석
// 뒤에는 공백이 와야 합니다.
// 앞에 비어 있지 않은 문자가 있으면 // 앞에 공백이 와야 합니다. ;
(2), 함수 설명
매개변수 이름, 속성 이름 및 레이블의 텍스트는 위아래로 정렬되어야 합니다.
첫 번째 레이블 앞에 빈 줄을 추가합니다.
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
* 추가 PHP
* 포맷터 옵션을 설명하기 위한 샘플 함수입니다.
*
* @param $one 첫 번째 매개변수
* @param int $two 두 번째 매개변수
* @param string 세 번째 매개변수는 긴
* 줄바꿈을 설명하기 위한 주석입니다.
* @return void
* @author phpgo.cnblogs.com
* @license GPL
*/
함수 foo($one, $two = 0, $3 = "문자열") {
}
5. 공백
(1), 대입 연산자(=, += 등), 논리 연산자(&&, ||), 등호 연산자(==, !=), 관계 연산자(<, > , <=, >=), 비트 연산자(&, |, ^), 왼쪽과 오른쪽에 공백이 있는 커넥터(.)
(2), if, else, elseif, while, do , there; 는 switch, for, foreach, try, catch, finally 등과 바로 왼쪽 대괄호 "(";
(3) 사이, 쉼표(",") 뒤 함수와 메서드의 매개 변수 사이에 공백이 있습니다.
6, 빈 줄
(1), 모든 왼쪽 중괄호 {는 깨지지 않으며, 바로 아래의 {}는 빈 줄이 아니어야 합니다.
(2), 동일한 수준 코드(들여쓰기됨) ), 주석 앞에 빈 줄이 있어야 합니다(줄 주석/블록 주석)
(3), 각 메서드/함수 사이에 빈 줄이 있습니다.
(4), 네임스페이스 문, use 문, clase 문 사이에 빈 줄이 있습니다.
(5), return 문
return 문 앞에 PHP 코드가 한 줄만 있으면 return 문 앞에 빈 줄이 필요하지 않습니다. return 문 앞에 최소한 두 줄의 PHP 코드가 있으면 return 문 앞에 빈 줄이 필요하지 않습니다.
(5), if, while, switch, for, foreach, try 및 기타; 코드 블록, 다른 코드 블록 사이
[참고 예시 요약]
참고 1:
1
2
3
4
5
6
7
8
namespace LibDatabaes;
class Mysql은 ParentClass Implements PDO, DB { // 한 줄 쓰기
public getInfo($name, $age, $gender = 1 ) { // 기본 매개변수의 "=" 좌우에 공백이 있습니다. ,)와 {
}
}
참고자료 2:
1
2
3
4
5
6
7
8
9
10
11
namespace VendorPackage;
abstract class ClassName {
protected static $foo; // static은 뒤에 배치
abstract protected function zim(); // abstract는 앞에 배치
final public static function bar() { // final을 앞에, static을 끝에 넣습니다. + ~