이 기사에서는 PHP 사양 중 psr 사양을 소개합니다. 이제 관심 있는 친구들과 함께 살펴보세요.
참고: http://psr.phphub.org/
PSR은 공식 문서가 아닙니다. PHP 표준 . 하지만 Zend 및 Symfony2와 같은 잘 알려진 PHP 프로젝트에서 추출한 일련의 표준이 현재 점점 더 많은 커뮤니티 프로젝트에 합류하여 이 표준을 따르고 있습니다.
PSR-0 자동 로딩
PSR-2 코드 스타일PSR-3 로그 인터페이스
PSR-4 지정 방법 클래스 정의를 자동으로 로드하는 파일 경로
PSR-1 기본 코드 사양
Ben 이 사양은 코드의 기본 요소에 대한 관련 표준을 공식화하여 높은 수준의 클래스 정의를 보장합니다. 공유 PHP
파일·
PHP코드 파일
반드시 또는 <span style="color:#858080;배경:#F9FAFA;"><?=</span></code > <span style="color:#7D8688;"> </span><code><span style="color:#858080;background:#F9FAFA;"><?php</span>
或 <span style="color:#858080;background:#F9FAFA;"><?=</span>
标签开始;
· PHP代码文件 必须 以 <span style="color:#858080;background:#F9FAFA;">不带</span>
<span style="color:#858080;background:#F9FAFA;"> BOM </span>
<span style="color:#858080;background:#F9FAFA;">的</span>
<span style="color:#858080;background:#F9FAFA;"> UTF-8</span>
编码;
· PHP代码中 应该 只定义类、函数、常量等声明,或其他会产生 <span style="color:#FF0000;background:#F9FAFA;">副作用</span>
태그 시작 · PHP코드 파일
필수
은 로 끝나야 합니다. <코드>
<span style="color:#858080;배경:#F9FAFA;">BOM 🎜
<span style="color:# 858080 없음 ;배경:#F9FAFA;">UTF-8🎜
🎜 🎜🎜 인코딩; 🎜🎜 🎜🎜🎜🎜· 🎜🎜PHP🎜🎜코드에서 🎜🎜 🎜🎜🎜은 🎜🎜🎜 🎜🎜 클래스만 정의 , 함수, 상수 등 🎜🎜 선언 🎜🎜 또는 기타 🎜 🎜Generate🎜🎜🎜<span style="color:#FF0000;Background:#F9FAFA;">부작용 🎜
🎜 🎜🎜 작업 🎜🎜(예: 파일 출력 생성 및 🎜🎜 .ini 🎜🎜 구성 파일 수정 등) 둘 다 하나만 선택할 수 있습니다. 🎜🎜· 클래스 이름 지정 must follow<span style="color:#858080;Background:#F9FAFA;">StudlyCaps <code><span style="color:#858080;background:#F9FAFA;">StudlyCaps</span>
大写开头的驼峰命名规范;
· 每个类都独立为一个文件,且命名空间至少有一个层次:顶级的组织名称(vendorname)
类属性:小写开头驼峰 $studlyCaps
类方法:小写开头驼峰
常量
· 类中的常量所有字母都 必须 大写,单词间用下划线分隔;
方法名称 必须 符合 <span style="color:#858080;background:#F9FAFA;">camelCase</span>
명명 규칙;
vendorname)이라는 하나 이상의 수준이 있습니다.
클래스 속성: 소문자 카멜 케이스로 시작 $studlyCaps클래스 메소드: 소문자 카멜 케이스로 시작
상수
클래스의 상수에는 이 있어야 합니다.
메서드 이름 반드시은 소문자로 시작하는 카멜 케이스의 <span style="color:#858080;Background:#F9FAFA;">camelCase</span>
스타일 명명 규칙을 준수해야 합니다.
PSR-2 코딩 스타일 사양
들여쓰기·
Must Use4 들여쓰기를 위해 "
Tab 🎜🎜 키" 대신 🎜 공백을 사용하세요. 🎜🎜🎜🎜🎜🎜line🎜🎜🎜🎜🎜🎜🎜한 줄당 문자 수는 🎜80🎜🎜🎜 이내로 적당히 유지해야 하며, 120자를 초과할 수 없지만, 엄격한 제한이 있어서는 안 됩니다. 🎜🎜🎜🎜🎜🎜모든 🎜PHP🎜🎜 파일 🎜🎜은 🎜🎜빈 줄🎜으로 끝나야 합니다. 🎜🎜🎜🎜🎜🎜각 줄에는 반드시🎜안됨🎜🎜둘 이상의 문이 있어야 합니다🎜🎜🎜🎜🎜🎜🎜각 🎜네임스페이스 🎜네임스페이스 선언문과 🎜use 🎜선언문 블록 뒤에는 빈 줄이 🎜ins 있어야 합니다. 에르🎜 . 🎜🎜🎜🎜🎜🎜🎜class🎜의 여는 중괄호(🎜{🎜)는 함수 선언 뒤에 단독 라인🎜으로 작성하고, 닫는 중괄호(🎜}🎜)도 단독 라인🎜으로 작성해야 합니다. 함수 본문 뒤에🎜 . 🎜🎜메소드의 여는 중괄호({)는 함수 선언 뒤의 한 줄에 작성해야 하며, 닫는 중괄호(})도 해당 한 줄에 작성해야 합니다. 함수 본체 이후에 소유하세요.
제어 구조 의 여는 중괄호({)는 선언과 같은 줄에 작성해야 하고, 닫는 중괄호(})는 본문 뒤에 작성해야 합니다. 자체 라인 .
Modifiers
클래스 속성 및 메서드 must 추가 ( private, protected 및 public ), abstract 및 final 은 액세스 수정자 앞에 선언되어야 하고, static 은 액세스 수정자 뒤에 선언되어야 합니다.
spaces
클래스 메서드 매개변수는 각
쉼표제어 구조의 여는 왼쪽 괄호 뒤와 닫는 오른쪽 괄호 앞에 공백이 있어서는 안 됩니다.
· 제어 구조
반드시해서는 안 됩니다 예.
모든 PHP 키워드는 모두 소문자여야 하며 상수 true, false 및 null도 모두 소문자여야 합니다.
loggerinterface <span style="color:#858080;background:#F9FAFA;">LoggerInterface</span>
interface는 8 개의 외부 메소드를 정의합니다. : debug, 정보, 공지, 경고, 오류, 위험, 경보 및 긴급 . 9번째 방법——log
은 유형 PsrLogInvalidArgumentException 의 예외를 발생시켜야 합니다. 사용자는 불확실한 상황에서 이 메서드를 호출하기 위해 지원되지 않는 수준 상수를 사용해서는 안 됩니다 . /** * 로그 수준 상수 정의*/class LogLevel
{
const
비상
='긴급' ;
const
ALERT='alert' constCRITICAL
='위험' ; constERROR
='오류'; const경고 ='경고'; const 공지 ='공지'; constINFO ='info'; DEBUG ='debug'; } PSR-4 자동 로딩 사양 다음 예와 유사합니다. 1. A 완전히 호환되는 클래스 이름에는 최상위 네임스페이스(Vendor Name 2가 있어야 합니다. 완전히 호환되는 클래스 이름에는 여러 개의 하위 네임스페이스가 있을 수 있습니다 3. 완전히 호환되는 클래스 이름에는 종료 클래스 이름이 있어야 합니다 완전히 호환되는 클래스 이름에서는 밑줄에 특별한 의미가 없습니다 문자는 대문자와 소문자의 조합이 될 수 있습니다. 완전히 호환되는 클래스 이름으로 모든 클래스 이름은 대소문자를 구분하여 인용해야 합니다. .php로 끝나는 파일에 해당합니다. . 파일 이름은 종료 클래스 이름 일부 일반적인 사용자 정의 사양 제어 계층 1과 일치해야 합니다. sql 문은 모델 계층에 캡슐화되어 있습니다. 메소드 호출로 사용) 4. (true === $name) 형식 5. 변수를 연결하려면 큰따옴표를 사용하세요. 6. 암시적 변환에 주의하세요. 7. 및 값 범위 /** 전역 변수에 대한 일반적인 설명 * 전역 STATUS_CODE -SUCCESS * 2-ERROR*/ STATUS_CODE /*************************************************** 9. 댓글 사이에 빈 줄 // 코드 원 댓글
10. 파일 헤더 댓글 /**************************************************** * ********Copyright (C), 1988-1999, Huawei Tech. Co., Ltd. // 12. 표시된 변수의 이름 지정: temp 는 tmp로 축약할 수 있습니다. ; 으로 축약할 수 있습니다. 13. 접두어 추가 / 제거 시작 / end 생성 / destroy 은 다음과 같은 형태로 변경되어야 합니다. 15. 클래스 파일이름(대문자 카멜 표기법 사용), 일반 파일 이름(밑줄 16. 구성 변수 사용된 이름 underscores
1, 클래스 메소드를 로 정의할 수 있는 경우 static, 그냥 다음과 같이 정의해보세요. static, 속도가 거의 4배 증가합니다. 2, $row['id']의 속도는 $row[id]입니다 의 7회. 3, echo보다 빠릅니다. print , 그리고 echo의 여러 매개변수를 사용하세요. (번역 참고: echo $str1,$str2와 같이 문자열 연결 대신 마침표 ) 대신 쉼표를 사용하는 것을 의미합니다. . 4, for 루프를 실행하기 전에 최대값을 계산하지 않는 것이 가장 좋습니다. foreach 대신. 5 메모리를 확보하려면 사용하지 않는 변수, 특히 큰 배열을 등록 취소하세요. 6, __get, __set을 사용하지 마세요. __autoload. 7, require_once()은 비용이 많이 듭니다. 8, include 절대 경로를 사용하세요. PHP goinclude_path 에서 파일을 찾는 속도는 운영 체제 경로를 구문 분석하는 데 더 적은 시간이 걸립니다. 9, 스크립트가 언제 실행되기 시작하는지 알고 싶다면(주석: 서버가 클라이언트 요청을 받습니다) $_SERVER['REQUEST_TIME']을 사용하는 것이 time() 보다 더 좋습니다. 10 , 함수는 정규식을 대체하여 동일한 기능을 완성합니다. 11, str_replace기능 비율preg_replace 기능은 빠르고, str의 효율성은 함수는 str_replace 함수의 4배입니다. 12 문자열 대체 함수가 배열이나 문자를 매개변수로 허용할 수 있고 매개변수 길이가 너무 길지 않은 경우 매개변수가 다음과 같이 되도록 추가 대체 코드 작성을 고려할 수 있습니다. 쿼리 및 바꾸기를 위한 매개 변수로 배열을 받아들이는 코드 줄을 작성하는 대신 매번 전달되는 문자는 문자입니다. 13, select Branch 문 사용 (번역: 즉 대소문자 전환) 여러 개를 사용하는 것보다 낫습니다 if, else if 문입니다. 14, @ 을 사용하여 오류 메시지를 차단하는 것은 매우 비효율적입니다. 15, apachemod_deflate 16. 데이터베이스 연결은 사용이 끝나면 종료되어야 합니다. 17, 오류 메시지는 비용이 많이 듭니다. ㅋㅋㅋ 봄 축제 고대 PHP 사양 PSR-1 PHP 언어 PHP 수동 PHP 개발자
2. SQL 문, 논리 코드 3줄 이상, 빈 줄
3. 상황별 함수나 메소드 사이에 빈 줄이 없습니다.
8과 같이 주석 처리됩니다.
함수: // 함수 중국어 이름
Description: // 함수 함수, 성능 등에 대한 설명
Calls: // 이 함수가 호출하는 함수 목록
Called By: // 이 함수를 호출하는 함수 목록 function
액세스된 테이블: // 액세스 중인 테이블(이 항목은 데이터베이스 작업과 관련된 프로그램에만 해당)
테이블 업데이트: // 수정 중인 테이블(데이터베이스 작업과 관련된 프로그램에만 해당)
입력: // 입력 매개변수 설명 , 각 매개변수의 기능, 값 설명 및 매개변수 간의 관계를 포함합니다.
출력: // 출력 매개변수에 대한 설명입니다.
반품 : 사용 사용 사용 using using through out using '' ’' out 의 OUT through using ‐ back's ‐ ‐ ‐ ‐ //
***************** **/
프로그램 코드 원
/ / 코드 2개 댓글
프로그램 코드 2개
Copyright파일 이름: test.cpp > > ;시간> <버전 > <설명>
Lizhijian 17/10/11 1.0 초기화**************************** ******** *************************/
11 .switch문의 Case 점프에는 주석이 필요합니다.
flag 는 flg ;
statistic으로 축약할 수 있습니다. stat ;
으로 축약할 수 있습니다. increment 는 inc로 축약할 수 있습니다. ;
message 는 msg ;
삽입 /먼저 / 마지막 구매 / 릴리스
증가 / 감소 넣기 / get
추가 /삭제 잠금 / 잠금 해제 열기 / closemin
/max old / new start / stopnext
/ 이전 출처 / 타겟 쇼 쇼 ㅋㅋㅋ / down
14. 상태 코드에 상수를 사용해보세요. 숫자 이해하기
#defineTRUNK_IDLE 0
#define TRUNK_BUSY 1
if (Trunk[index ].trunk_state == TRUNK_IDLE)
{
Trunk[index].trunk_state = TRUNK_BUSY;
... //프로그램 코드
}1. 变量自增自减写到表达式前面: --e >= $name
2. 程序顺序应该遵循:参数定义代码->判断逻辑代码->业务逻辑代码
r3. 大的数据使用引用
4. 为逻辑代码里每个复杂度高/重复度高的代码添加注释
5. 尽量不为简短代码引入新的变量,减少变量污染
위 내용은 PHP 사양의 PSR 사양의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!