2014년에 만든 임시 PHP 코드가 설치 2,000만 회에 육박했다. 오늘 사용 중단을 권고한다

15 hours ago 8

AOL CMS 이전을 위해 만든 174줄짜리 http_build_url 폴리필이 12년간 설치 2,000만 회에 육박한 끝에 사용 중단 권고(deprecated) 상태로 전환됨 PHP 5.2에서 5.3으로 업그레이드하며 제거한 pecl_http v1의 함수를 대신하도록 만들었으며, 기존 호출 코드를 바꾸지 않고 동작하게 한 임시방편이었음 지금도 월 40만 회 이상 설치되며, Composer 외에도 WordPress 플러그인 WPML에 직접 포함되거나 다른 라이브러리의 의존성을 통해 배포됨 경로 결합 과정에서 문자 a가 모두 사라질 수 있는 버그도 수정하지 않을 예정임. 패키지는 계속 설치할 수 있지만 새로운 수정은 제공하지 않음 대안은 PHP League URI 라이브러리와 PHP 8.5의 내장 URI API임. 유지보수를 계속하면 이전이 늦어지고, 검증되지 않은 새 관리자에게 넘기면 보안 위험이 커질 수 있다고 판단함 임시 폴리필이 12년간 쓰인 경위 2014년 AOL CMS를 PHP 5.2에서 5.3으로 이전하며 pecl_http 확장 v1을 제거해야 했음 CMS는 이 확장의 http_build_url()을 수십 곳에서 호출하고 있었고, 해당 호출부는 수정하지 않기로 함 원래 함수가 없을 때만 정의되는 174줄짜리 대체 구현을 만들어 기존 코드가 변화 없이 동작하게 함 당시 확산되던 Composer 덕분에 Packagist에 쉽게 공유할 수 있었으며, 더 나은 대안이 나올 때까지 1~2년 정도 쓰일 것으로 예상했음 실제 Packagist 누적 설치는 2,000만 회에 육박하며, 지금도 매월 40만 회 이상 설치됨 WordPress 다국어 플러그인 WPML은 폴리필을 코드베이스에 직접 포함하며, WPML이 밝힌 설치 사이트 수는 150만 곳 이상임 도메인 이름 라이브러리 idna-convert의 의존성이기도 하며, 이를 통해 프랑스 CMS인 SPIP 소스에 포함되고 Debian과 Ubuntu에도 패키지로 배포됨 AOL CMS 역시 이 ‘임시’ 폴리필에서 벗어나지 못했고, 플랫폼 전체가 폐쇄된 2020년경까지 사용했음 버그 수정이나 관리자 이관 대신 사용 중단 권고 개발자는 PHP를 떠난 뒤인 2021년 설치 규모에 놀라 새 유지보수 담당자를 모집했고, 3명이 지원했음 직후 갑작스러운 가족의 사망으로 후속 연락을 하지 못했으며, 이후 다른 목표에 집중하면서 패키지를 수년간 잊고 지냄 몇 달 전 다시 확인하면서 ...

Read Entire Article