2009-04-08 9 views
4

PHP 5.3이 릴리스 후보 단계 (woo!)에 도달했음을 알았지 만, 이미 제거 된 이미 사용되지 않는 함수의 목록을보고 나면 내 오래된 코드를 깨뜨릴거야.최신 버전의 PHP로 마이그레이션

테스트 서버 (테스트 서버에 설치하여 시험해보기)를 수행하는 것만 큼, 문제를 강조하기 위해 코드를 분석 할 수있는 마이그레이션 도구가 있습니까? 예를 들어 일부 스크립트에서 ereg_* 기능을 사용하는 경우

+0

현재 실행중인 버전은 무엇입니까? – cletus

+0

5.2.4, 그건 중요하지 않지만? – nickf

+0

글쎄, 5.1 -> 5.3에서 5.2 -> 5.3으로 이동하면 거기에 없을 경우 문제를 생각할 수 있습니다. coruse의 최신 버전과 새 버전이 모두 적합합니다. – cletus

답변

1

테스트 서버에 설치하고 유닛 테스트를 실행하는 데 아무런 영향을주지 않습니다. 유닛 테스트가 있잖아요, 그렇죠? ;)

+0

유닛 테스트는 FTW이지만 테스트 서버와 관련없는 경험적 방법을 원한다고 명시 적으로 말했습니다. :-) – Benson

+0

그래, 임의의 경고에 대해 유감스럽게 생각하지만, 그 외에 다른 것이 있는지 궁금해하고있었습니다. 또한 단위 테스트가없는 제 3 자 소프트웨어도 있습니다. – nickf

4

사용할 수있는 기술 중 하나는 제거되고 사용되지 않는 기능의 목록을 가져와 grep하는 것입니다. 작은 쉘 스크립트 fu는 이와 같은 것들을 위해 먼 길을 간다.

의 당신이 사용되지 않는 함수 이름 한 줄에 하나의 파일 deprecated.txt 있다고 가정하자

for func in `cat deprecated.txt` 
do 
    grep -R $func /path/to/src 
done 

당신이 사용하고 사용되지 않는 기능의 모든 인스턴스를 말할 것이다.

+1

루프에서 grep을 사용하는 것보다는 egrep -R '(dep_func_1 | dep_func_2 | etc ...)'/ path/to/src와 같은 명령문을 작성하는 것이 더 효율적일 것입니다. 또 다른 옵션은 호출 된 함수의 이름을 포함하는 xdebug 추적 파일 - 그러나 100 % 코드 적용 범위를 얻는 것은 어려울 것입니다. –

+0

물론 더 효율적일 것입니다. 그러나 읽기 쉬운 셸을 작성하는 것이 조금 어렵습니다. 파일에서 dep_func_1, dep_func_2 등을 읽고 grep을 수행하는 스크립트. 나는 가독성을 높이기 위해서가 아니라 속도를 높이기 위해 그것을했다. :-피 – Benson

관련 문제