<?php ?> 태그이거나 <?= ?> 태그를 사용해야한다. 이외의 다른 태그 변형은 반드시 사용하지 않는다.2.2. 문자 인코딩
php 코드는 BOM 없이 utf-8로만 사용해야한다.
2.3. 사이드 이펙트
파일은 새로운 symbols (classes, functions, constants, etc.) 선언하고 다른 side effect들을 일으키지 않아야하거나 사이드 이펙트의 로직을 실행해야하며 둘 다 같이 사용하면 안된다.
side effect는 로직의 실행이 include된 파일로부터 클래스, 함수, 상수로부터 직접적으로 연관되지 않는 것을 의미한다.
side effect는 다음이 포함되지만 이에 국한되지는 않습니다.
: 출력 생성, require이나 include를 명시적 사용, 외부 서비스 연동, ini 설정을 수정, 에러나 예외 발생, global이나 static(정적) 변수, 파일이나 기타 등등으로부터 읽어온 것
(피해야할 것들 예)사이드 이펙트와 선언들을 모두 사용한 파일 예
<?php
// side effect: change ini settings
ini_set('error_reporting', E_ALL);
// side effect: loads a file
include "file.php";
// side effect: generates output
echo "<html>\n";
// declaration
function foo()
{
// function body
}
사이드 이펙트 없이 선언한 파일 예시
<?php
// declaration
function foo()
{
// function body
}
// conditional declaration is *not* a side effect
if (! function_exists('bar')) {
function bar()
{
// function body
}
}
php 5.3부터 코드는 공식적인 네임스페이스를 사용해야한다.
<?php
// PHP 5.3 and later:
namespace Vendor\Model;
class Foo
{
}
<?php
namespace Vendor\Model;
class Foo
{
const VERSION = '1.0';
const DATE_APPROVED = '2012-06-01';
}
4.2. Property
property 이름은 합리적인 범위(vendor-level, package-level, class-level, or method-level)에서 일관되게 적용되게 지어야한다.
4.3. 함수
함수 이름은 카멜케이스로 선언되야한다.