본문 바로가기

Composer PHP 개발에서 패키지 간의 의존성을 관리하는 도구이다.패키지 리스트(https://packagist.org/) 에서 원하는 패키지를 쉽게 검색할 수 있다.원하는 패키지를 프로젝트의 composer.json 에 선언하고 설치하면 즉시 해당 라이브러리들을 사용할 수 있다.멀티 플랫폼을 지원하며 Linux / Windows / OSX 에서 동일하게 동작한다. 시스템 요구사항 PHP 5.3.2 이상 설치 Windows 는 https://getcomposer.org/download/ 에서 다운받아 바로 설치 할 수 있다. 설치는 아래 방법보다 위 composer 사이트에서 최신 메뉴얼을 이용하는 것이 좋다. Linux / Unix / OSX 의 경우, 프로젝트 디렉토리에서 다음과 같이 인스톨러를 실행하면, 현재..
PSR-7 PSR-7 : HTTP 메시지 인터페이스 (http://www.php-fig.org/psr/psr-7/) 웹브라우저와 cURL 같은 HTTP 클라이언트는 HTTP 응답 메시지를 제공하는 웹 서버로 보낼 HTTP 요청 메시지를 생성한다.서버 사이드 코드는 요청 메시지를 받고 HTTP 응답을 반환한다.모든 HTTP 요청 메시지는 특정한 형태로 되어 있다. 1234POST /path HTTP/1.1Host: example.com foo=bar&baz=batcs 첫번째 줄은 HTTP 요청 메소드, 요청 타겟(서버 경로나 절대주소), HTTP 프로토콜 버전 순으로 구성된다.다음에 하나 이상의 HTTP 헤더와 빈줄과 요청 메시지 본문이 온다. HTTP 응답 메시지는 아래와 유사한 구조로 되어 있다. 1234HTTP..
PSR-6 PSR-6 : 캐싱 인터페이스 (http://www.php-fig.org/psr/psr-6/) 캐싱은 많은 프레임워크와 라이브러리의 주요 기능 중 하나로, 프로젝트의 성능을 향상시키는 일반적인 방법이다.이 문서는 이미 사용중인 프레임워크와 시스템에 통합될 수 있는 캐싱 라이브러리를 생성할 수 있도록 한다. Definitions Calling Library실제 캐시 서비스가 필요한 라이브러리나 코드.이 라이브러리는 표준 인터페이스를 구현하는 캐싱 서비스를 이용할 것이다. Implementing Library 이 라이브러리는 Calling 라이브러리로 캐시 서비스를 제공하기 위한 표준을 구현하도록 응답한다.Cache\CacheItemPoolInterface 와 Cache\CacheItemInterface 인..
PSR-4 PSR-4 : 오토로더 (http://www.php-fig.org/psr/psr-4/) 파일 경로로부터 클래스를 오토로딩하기 위한 표준이다.PSR-0 를 포함하는 다른 어떤 오토로딩도 사용될 수 있으며, 오토로드 될 파일들의 위치도 설명한다. 정규화된 클래스 이름은 다음과 같은 형태를 가진다. \(\)*\ vendor 네임스페이스로 알려진 최상위 네임스페이스 이름과 하나 이상의 서브 네임스페이스 이름, 마지막에 클래스 이름을 가져야 한다.밑줄은 정규화된 클래스 이름에서 어떤 의미도 가지지 않으며, 모든 클래스 이름은 대소문자를 구분한다. 정규화된 클래스 이름에 해당하는 파일을 로딩할 때, 최상위 네임스페이스 부터 서브 네임스페이스 이름은 \ 구분자로 디렉토리로 구분되어 최소 하나의 베이스 디렉토리에 대응..
PSR-3 PSR-3 : 로거 인터페이스 (http://www.php-fig.org/psr/psr-3/) Logging 라이브러리에 대한 공통 인터페이스를 설명한다.Psr\Log\LoggerInterface 인터페이스를 구현하여 간단하게 로그를 기록할 수 있도록 한다.사용자의 프레임워크나 CMS 에서 이 인터페이스를 확장하려면, 이 문서와 호환성을 유지하도록 한다. Basic LoggerInterface 에는 RFC 5424 레벨의 8가지 메소드가 있다. (debug, info, notice, warning, error, critical, alert, emergency).9번째 메소드인 log 는 첫번째 매개변수로 로그 레벨을 지정할 수 있다.로그 레벨 상수 중 하나를 지정하여 log 메소드를 호출하는 것은 해당 ..
PSR-2 PSR-2 : 코드 스타일 가이드 (http://www.php-fig.org/psr/psr-2/) PSR-1 코딩 스타일의 확장판이다. 태그는 생략해야 한다. Lines 한 줄에 soft 길이 제한은 120 자가 되어야 한다; 자동 스타일 체커 (경고여야지 에러로 출력하지 말아야 한다.)한 줄에 너무 길지 않도록 80 자 정도만 사용하고 80 자 이상은 다음 줄로 분리하도록 한다.라인의 끝에 공백을 두지 않는다.가독성과 코드 블럭을 가리키기 위해 빈 라인을 사용할 수 있다.한 줄에 하나 이상의 구문을 사용하지 않아야 한다. Indenting 들여쓰기는 스페이스 4칸을 사용하고, 탭은 사용하지 않아야 한다. Keywords and True/False/Null PHP 키워드나 상수 true, false, n..
PSR-1 PSR(PHP Standard Recommendation)은 PHP-FIG (PHP Framework Interop Group) 이 주도하여 제안한 PHP 표준 권장안이다.최근 대부분의 PHP 프로젝트들이 이 PSR을 표준으로 하여 개발 중이다. PSR-1 : 기본 코딩 표준 (http://www.php-fig.org/psr/psr-1/) PHP Tags php 코드는 와 short echo 인 태그 안에서만 사용해야 한다. Character Encoding php 파일의 문자 인코딩은 BOM(Byte order Mark) 없이 UTF-8 만 사용해야 한다. Side Effects 다른 파일들과 클래스, 함수, 상수 등을 선언할 때 충돌하지 않도록 조건부 선언(no side-effects) 등을 사용한다..
raw POST data 보통 HTTP 통신에서 페이지 요청(Request)시 GET 이나 POST 방식을 많이 사용한다. POST 방식의 폼 데이터 전송시 헤더에는 변수1=값1&변수2=값2... 의 형태로 구성이 되는데, PHP 에서는 이 값들을 $_POST 같은 전역 배열로 파싱된 데이터를 얻어낼 수 있다. 하지만 쿼리스트링 형태(변수1=값1&변수2=값2...) 가 아닌 json 이나 xml 등의 데이터를 POST 방식으로 보내게 되면, $_POST 전역 배열은 파싱된 결과를 저장하므로 데이터를 저장할 수 없다. 이런 raw POST 데이터를 받기 위해서 $HTTP_RAW_POST_DATA 를 사용할 수 있다. 하지만 최신 버전(5.6이상)에서는 위 전역 변수를 추천하지 않고, Request Body로부터 raw data를 ..