2012-03-06 2 views
4

현재 PHP 5.1.6에서 5.3.10으로 내 사이트를 업그레이드 할 수 있는지 조사 중입니다. 사이트가 CentOS에서 실행 중입니다.PHP 5.1에서 PHP 5.3으로 업그레이드

네임 스페이스 및 클로저의 도입과 같은 주요 차이점에 대해 알고 있습니다. 나는 또한보기 좋고, 상당한 시간을 보낼 곳이 될 "마이그레이션 호환성 가이드"의 "이전 버전과의 호환되지 않는 변경 사항"을 검토하는 데 시간을 보냈습니다.

눈을 떼지 않는 "잡았다"가 있습니까?

+0

내가 말하고자하는 한 가지 .. 적절한 코드 명을 가지고 있다면,이 질문은 불필요 할 것이며 거의 100 % 확신 할 수있을 것입니다. – Evert

+1

@Evert : 그렇지 않은 경우 해당 버전간에 많은 변화가있었습니다. 즉. v5.1에서 올바른 것은 v5.3에서 항상 그렇다고해서 단위 테스트가 전혀 도움이되지 않습니다. – Orbling

+5

주요 "잡았다"는 PHP 5.4가 출시되었습니다. – Xeoncross

답변

3

나는 최근뿐만 아니라 5.3.x하기 위해 점프를했고 다음과 같은 문제를 지적 (내 blog에서 공급) :

date.timezone (php.ini의) :

  • PHP 개발자 오류 수준을 엄격에서 경고로 줄 였으므로이 기능이 올바르게 설정되지 않은 경우 날짜 기능과 관련된 수많은 경고가 표시됩니다.

예 :

date.timezone = America/Los_Angeles 

__toString() :

  • PHP 5.3, 마법 __toString() 더 이상 방법이 인수에 전달할 수 있도록에서 의미를 만든다 어떤 수준이지만 유연성을 감소시킵니다.

주석에서 언급했듯이 5.3.10으로 업그레이드 한 다음 5.4.1 또는 5.4.2로 마이그레이션하는 것이 좋습니다. 5.4.0으로 바로 넘어가는 것은 좋은 생각이 아니므로 5.4.1에 대한 변경 내역을 게시하는 이유를 알 수 있습니다.

+1

이와 같은 몇 가지 변경 사항을 제외하고는 마지막 설치시 부여한 확장 프로그램을 설치하는 것이 전투 절반이며 코드를 올바르게 작성하면 나머지 절반이 해결됩니다. – Xeoncross

1

(here)을 다시 호스트하기 때문에 PHP 5.3에서 MediaWiki 1.15.1을 사용해야했습니다. 당시 dev 팀은이 핸드 오버에서 "놓으십시오". 그래서 커뮤니티 자원 봉사자가이 작업을 수행해야했습니다. MW 개발자의 조언은 "MW1.15는 PHP 5.3과 호환되지 않으며 MW 1.17로 업그레이드"

사용자 정의 확장과 MW 1.15 스키마를 디딤돌로 삼아야하는 여러 가지 이유 때문에 MW 1.15. 이봐 요, 고통 스러웠습니다 !!

주요 문제는 "값으로 호출되는 참조 매개 변수가있는 함수의 동작이 변경되었습니다. 이전에는 함수가 값 인수를 받아들이면 치명적인 오류가 발생합니다." 다시 말해서 5.1과 5.2는 용인 할 수없는 관용을, 5.3은 치명적 오류로 barf를 나타냅니다. 이들 모두를 정적으로 찾는 것은 비실용적 이었으므로 공통 경로를 사용하고 오류 로그를 조사하여 문제가 발생한 경우 수십 가지 사례를 찾아 문서화 된 API와 대조하여 사례별로 해결합니다. 케이스 기준. 나는 타 버린 다른 incompatibilities을 생각할 수 없다.

관련 문제