[PSR 규범 테마 (2)] PSR-1 기본 코드 규범
기본 코드 사양
본 규범은 공유된 PHP 코드 간에 비교적 높은 수준의 기술 호환성을 확보하기 위해 코드 기본 요소에 관한 표준을 제정하였다.
키워드'필수'('MUST'),'필수불가/필수불가'('MUST NOT'),'필요'('REQUIRED'),'회'('SHALL'),'아니오'(SHALL NOT),'응당'('SHOULD'),'해서는 안 된다'('SHOULD NOT'),'추천'('RECOMMENDEDEDED'),'가능'('MAY'),'RFC'('OPTIONTION2119) 상세 설명 참조.
1. 개요
<?php 또는 <?= 레이블로 시작해야 합니다. BOM UTF-8으로 인코딩해야 합니다. 의 다른 조작(예를 들어 파일 출력 생성 및 수정.ini 프로필 등)이 발생할 수 있으니 둘 중 하나만 선택할 수 있다.StudlyCaps의 대문자로 시작하는 낙타봉 명칭 규범을 따라야 한다.camelCase식의 소문자 시작 낙타봉 명명 규범에 부합해야 한다.2. 파일
2.1. PHP 레이블
PHP 코드는
<?php ?> 긴 태그 또는 <?= ?> 짧은 출력 태그를 사용해야 합니다.다른 사용자 정의 탭을 사용할 수 없습니다.2.2. 문자 인코딩
PHP 코드는 반드시
BOM UTF-8 인코딩만 사용할 수 있어야 합니다.2.3. 종속 효과(부작용)
PHP 파일에서 클래스, 함수, 상수 등 종속효과가 발생하지 않는 새로운 성명만 정의하거나, 종속효과가 발생하는 논리적 조작만 정의하지 않으면 안 된다.
종속효과(side effects)라는 단어는 파일을 포함해서만 클래스, 함수, 상수 등을 직접 설명하지 않고 실행하는 논리적 조작을 의미한다.
'종속효과'는 출력 생성, 직접적인
require 또는 include, 외부 서비스 연결, ini 설정 수정, 오류 또는 이상 던지기, 전역 또는 정적 변수 수정, 파일 읽기 또는 쓰기 등에 국한되지 않는다.다음은 선언과 종속 효과가 포함된 코드의 반례입니다.
<?php
// : ini
ini_set('error_reporting', E_ALL);
// :
include "file.php";
// :
echo "<html>
";
//
function foo()
{
//
} 다음은 종속 효과가 발생하지 않는다는 선언만 포함된 코드의 예입니다.
<?php
//
function foo()
{
//
}
// ** **
if (! function_exists('bar')) {
function bar()
{
//
}
} 3. 네임스페이스 및 클래스
네임스페이스 및 클래스 이름은 PSR-0을 따라야 합니다.
규범에 따라 모든 클래스는 하나의 파일로 독립되고 이름 공간은 최소한 하나의 차원이 있습니다: 최고급 조직 이름 (vendor name).
클래스의 명칭은 반드시
StudlyCaps대문자로 시작하는 낙타봉의 명칭 규범을 따라야 한다.PHP 5.3 및 이후 버전의 코드는 정식 네임스페이스를 사용해야 합니다.
예를 들면 다음과 같습니다.
<?php
// PHP 5.3
namespace Vendor\Model;
class Foo
{
} 5.2.x 및 이전 버전에서는 위명명 공간을 사용해야 하며, 최고급 조직 이름 (vendor name), 예를 들어
Vendor_을 클래스 접두사로 약정합니다.<?php
// 5.2.x
class Vendor_Model_Foo
{
} 4. 클래스의 상수, 속성 및 방법
이곳의 '클래스' 는 모든 클래스, 인터페이스, 복용 가능한 코드 블록 (traits) 을 가리킨다
4.1. 상수
클래스의 상수에 있는 모든 자모는 반드시 대문자로 써야 하며, 단어 사이의 밑줄은 구분해야 한다.다음 코드를 참조하십시오.
<?php
namespace Vendor\Model;
class Foo
{
const VERSION = '1.0';
const DATE_APPROVED = '2012-06-01';
} 4.2. 등록 정보
클래스의 속성 명칭은 대문자로 시작하는 낙타봉식(
$StudlyCaps), 소문자로 시작하는 낙타봉식($camelCase) 또는 밑줄 구분식($under_score)을 따를 수 있다. 본 규범은 강제 요구를 하지 않지만 어떤 명칭 방식을 따르든지 일정한 범위 내에서 일치해야 한다.이 범위는 전체 팀, 전체 가방, 전체 유형 또는 전체 방법일 수 있다.4.3. 메서드
방법명칭은 반드시
camelCase()식의 소문자 첫머리 낙타봉 명명규범에 부합해야 한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.