[원문]
http://techblog.wimgodden.be/2010/06/24/automated-php-5-3-compatibility-testing-for-your-old-code/
[참조]
http://www.php.net/manual/en/migration53.new-features.php : php5.3 버전에서 달라지는 것들
http://code.zikula.org/phpcs/wiki/installation : PHP_CodeSniffer 설치(pear)
PHP_CodeSniffer를 기반으로 한 PHP5.3 으로 버전업시 발생되는 문제점을 확인하여 리스트해준다.
우선, 현재 테스트 환경은 PHP5.3 이 깔려 있어야 한다.
[설치순서]
1. pear 를 통한 PHP_CodeSniffer 1.3 이후 버전 설치 (http://pear.php.net/PHP_CodeSniffer)
2. PHP5.3 호환성 체크용 룰셋 다운받기 (https://github.com/wimg/PHP53Compat_CodeSniffer/downloads)
우선, pear 리스트에 PHP_CodeSniffer가 설치되어 있는 지 확인하고 없거나, 버전이 1.2.2 stable로 되어 있는 경우, 이를 1.3.0RC1으로 재설치 한다.
> pear list => 목록확인
> pear install PHP_CodeSniffer-alpha => 설치후 PHP_CodeSniffer 1.3.0RC1 beta 로 설치됨
다음, pear 설치 디렉토리로 이동한 뒤에 호환성 체크 룰셋 적용한 파일들을 다운
> cd C:\Server\PHP\PEAR : pear 디렉토리
> cd PHP\CodeSniffer\Standards : CodeSniffer 디렉토리
> git clone git://github.com/wimg/PHP53Compat_CodeSniffer.git PHP53Compatibility
git 가 설치되어 있지 않다면 파일 다운 후 Standards 디렉토리에 PHP53Compatibility디렉토리로 이름변경하고 추가(https://github.com/wimg/PHP53Compat_CodeSniffer/downloads)
설치된 PHP53Compatibility 디렉토리 안에는 아래의 파일과 디렉토리가 있게 된다.
README.markdown
ruleset.xml
Sniffs 디렉토리
[실행]
> phpcs --standard=PHP53Compatibility <테스트할 php source 디렉토리>
만약, 테스트할 php 코드가 .php뿐만 아니라 .html .inc 도 있을 경우 --extensions 옵션을 추가
> phpcs --extensions=php,html,inc --standard=PHP53Compatibility <테스트할 php source 디렉토리>
[실행결과]
FILE: C:\workspacePHP\test.php
------------------------------------------------------------------------------
FOUND 0 ERROR(S) AFFECTING 1 LINE(S)
------------------------------------------------------------------------------
1 | WARNING | No PHP code was found in this file and short open tags are not
| | allowed by this install of PHP. This file may be using short
| | open tags but PHP does not allow them.
------------------------------------------------------------------------------
이렇게 나온 경우는 해당 php 파일에 short open tag(<?)를 사용했거나, php 코드가 없는 경우
------------------------------------------------------------------------------
2 | WARNING | The use of function ereg() is discouraged; use preg_match() instead
4 | WARNING | The use of function split() is discouraged; use preg_split() instead
9 | WARNING | The use of function ereg_replace() is discouraged; use preg_replace() instead
------------------------------------------------------------------------------
이런 식으로 호환성 결과가 나온다.
파일이 많을 경우 지체되는 경우도 있어, 디렉토리별로 실행하고 결과를 파일로 남겨서 살펴보는 쪽을 추천한다.
Windows Azure - 2012.06.18 (0) | 2012.06.18 |
---|---|
검색엔진 차단하기 (0) | 2012.05.22 |
2011.9월 BUILD 컨퍼런스 키노트 (0) | 2012.02.17 |
카산드라 (0) | 2012.01.30 |
Spring & Ibatis framework 5 - 2011.11.12 (0) | 2011.11.12 |