소개: 1990년대 중반 개인 프로젝트로 시작하여 PHP는 소규모 블로그에서 대기업 애플리케이션에 이르기까지 모든 것을 지원하는 가장 인기 있는 웹 개발 언어 중 하나로 성장했습니다.
PHP 이 언어는 지난 30년 동안 놀라운 반복적 변화를 경험했습니다. 지난 10년 동안 PHP는 우리가 상상할 수 없었던 방식으로 변화했습니다.
새해마다 PHP의 현재 상황을 되돌아보고 미래를 기대하는 글을 쓰겠습니다. 지금 시작하자!
PHP Foundation
과거에는 주로 최신 PHP 버전에 대한 요약으로 시작했습니다. 하지만 이번에는 먼저 PHP Foundation에 집중하고 싶습니다.
PHP 재단이 설립된 지 1년이 넘었습니다. PHP 재단에서 급여를 받는 10명의 자원봉사자와 6명의 개발자로 구성된 팀으로 PHP 언어 개발에 힘쓰고 있습니다.
작년에 이렇게 썼습니다.
이제 Nikita(커널 개발자)가 떠나서 조금 걱정됩니다. 그러나 그는 확실히 핵심 PHP 작업을 할 수 있는 유일한 사람은 아닙니다. 그는 지난 몇 년 동안 PHP 8.0과 8.1에 대해 많은 작업을 수행했습니다.
PHP 재단이 곧 따라잡아 내년에는 PHP 작업에 충분한 핵심 개발자를 확보할 수 있기를 바랍니다.
PHP 8.2는 이미 개발 중이지만 아직 RFC 초안이 많이 작성되지 않았습니다.
2022년은 PHP에 있어서 가장 흥미로운 해가 아니라 오히려 안정성이 향상된 해가 될 것이라고 생각하는 것은 틀리지 않았습니다.
이제 PHP 재단이 설립되어 운영되고 있다고 말하는 것이 타당하다고 생각합니다. 그들은 최근 2022년 보고서를 발표했는데, 여기에는 매우 인상적인 숫자가 나와 있습니다.
2022년에 모금된 $580,000
재단은 PHP 코어 작업을 위해 6명의 개발자에게 비용을 지불할 것입니다
재단 회원은 거의 절반을 완료했습니다. php-src의 커밋
그들은 8개의 새로운 RFC를 만들었고 그 중 하나만 실패했습니다.
PHP 재단은 PHP 개발 프로세스가 진행되는 가장 좋은 장소라고 생각합니다. 2023년에는 언어가 더욱 향상되기를 바랍니다. PHP를 사용하는 회사에서 일하는 경우 일부를 기부하는 것을 고려해 보시기 바랍니다.
PHP 8.2
PHP 8.2 사용에 대해 이야기해 보겠습니다. 개발자들은 종종 더 작은 버전으로 간주하지만 실제로는 좋은 기능이 많이 있습니다.
다음은 몇 가지 예입니다.
ReadOnly 클래스(ReadOnly):
readonly class PostData { public function __construct( public string $title, public string $author, public string $body, public DateTimeImmutable $createdAt, public PostState $state, ) {} }
새로운 무작위 생성기:
$rng = $is_production ? new Random\Engine\Secure() : new Random\Engine\Mt19937(1234); $randomizer = new Random\Randomizer($rng); $randomizer->shuffleString('foobar');
null과 무관한 참 및 거짓: 이접적 정규형 유형:
function alwaysFalse(): false { return false; }
물론 탐색할 가치가 있는 더 많은 것들이 있습니다.
지난 몇 년간 PHP가 얼마나 미친 듯이 성장했는지 생각해 보세요. 몇 가지 비교를 했는데 그 차이점이 아래에 명확하게 나와 있습니다.Ecosystem
매년처럼 PHP용 패키지 관리자인 Packagist를 언급해야 하는데, 올해 기준으로 지난 해보다 60,000개 많은 361,000개의 패키지가 나열되어 있습니다. 연도:
가장 인상적인 숫자는 총 설치 수입니다. 작년에 이 금액을 언급했습니다.
그런데 Packagist는 최근 500억 건 이상의 설치를 처리하는 이정표를 통과했습니다. 축하합니다. Packagist!
방금 확인해 보니 Packagist의 현재 설치 횟수는 74,492,061,634회 입니다. 이는 1년에 240억 건의 설치, 월간 설치 횟수는 20억 건입니다. 요약하자면, PHP 생태계는 빠르게 성장하고 있습니다.그 게시물의 차트를 다시 공유하고 싶었습니다. 2013년부터 현재까지의 타임라인으로 각 버전의 사용 내역을 보여줍니다.1년에 두 번 버전 통계를 발행합니다. 이 게시물에서는 Packagist의 데이터를 기반으로 커뮤니티 전체의 PHP 버전 사용을 분석합니다.
PHP 8.*의 사용량이 급격히 증가하는 것은 좋은 일이지만, 많은 사람들이 여전히 오래되고 느리고 안전하지 않은 PHP 버전에 갇혀 있습니다. 2023년에 대한 나의 희망은 이전 버전 번호가 이보다 더 빨리 떨어지는 것을 보는 것입니다. 위 버전 통계 포스팅에 제가 쓴 내용은 다음과 같습니다.
이 데이터는 PHP 커뮤니티 내의 분열을 아름답게 시각화합니다. 한 부분은 최신 PHP를 따라가고 다른 부분은 무기력하게 뒤처져 있습니다.
업그레이드와 관련하여 특히 Rector라는 도구 하나를 언급하고 싶습니다.
Rector는 PHP 코드베이스를 업그레이드하는 데 도움이 되는 무료 자동화 도구입니다. 필요한 것은 소량의 구성뿐이며 많은 작업을 수행합니다.
최근에 커뮤니티 기반 콘텐츠 수집기 Aggregate를 PHP 8.2로 업데이트하는 데 사용했는데 정말 재미있고 사용하기 쉬웠습니다.
내 버전 통계 게시물을 게시한 후 몇몇 사람들이 아직 업데이트하지 않았으며 PHP 7.*에서 멈췄다고 말했고 나는 그들에게 이유를 물었습니다. 그들은 육체적인 노동이 너무 많다고 말했습니다. 흥미롭게도 아무도 Rector와 같은 도구를 사용하여 그들을 도우려고 시도한 적이 없습니다...
저는 "프로그래밍 언어"가 단순한 컴파일러 이상의 것이라고 굳게 믿습니다. "프로그래밍 언어"를 정의하는 데 동일한 역할을 하는 도구와 생태계입니다. 프로그래밍 언어"를 사용하는 경우 Rector와 같은 자동화 도구를 사용하면 많은 사람, 프로젝트 및 기업이 도움이 될 것이라고 생각합니다.
생태계에 대해 이야기하고 있으니 PHP의 가장 큰 두 가지 프레임워크인 Laravel과 Symfony를 언급하지 않을 수 없습니다.
Laravel은 지난 몇 년 동안 엄청나게 성장했습니다. 현재 그들은 프레임워크와 생태계를 개발하기 위해 8명의 정규 개발자를 고용하고 있습니다. 또한 JetBrains의 개발 설문조사에 따르면 PHP 개발자의 67%가 Laravel을 사용하는 것으로 나타났습니다.
Symfony는 오늘날 Laravel에 비해 프레임워크로서 덜 인기가 있을 수 있지만 여전히 PHP 커뮤니티에서 가장 성숙하고 안정적인 프레임워크 중 하나입니다. 엔터프라이즈 애플리케이션 개발에 더 일반적으로 사용되지만 독립 실행형 구성 요소는 PHP 생태계 전체에서 널리 사용됩니다. Laravel은 Symfony 구성 요소에 대한 일부 종속성도 있으므로 많은 Symfony 패키지가 Packagist의 상위 패키지 목록에 포함되는 것은 놀라운 일이 아닙니다.
워드프레스(WordPress)도 언급해야겠어요. 솔직히 말해서 나는 WordPress와 애증 관계를 가지고 있습니다. 사용자로서 WordPress는 훌륭합니다. 설치와 사용이 매우 간단하며 수년에 걸쳐 엄청난 인기를 얻은 것 같습니다. 하지만 개발자로서 WordPress는 나를 슬프게 합니다. 현대적이고 안전한 PHP 버전을 따라잡을 수 없다는 점은 전체 PHP 커뮤니티에 걸림돌이 됩니다.
현재 WordPress에서는 PHP 8.0에 대한 베타 지원만 제공합니다. 이제 명확하게 말하면 PHP 8.0은 2020년에 출시되어 3년 후에 수명이 다했습니다. 그리고 WordPress에서는 아직 이를 지원하지 않습니다...
물론 최신 PHP 버전이 제대로 지원되지 않는 데에는 이유가 있습니다. 그것이 맞는지 판단하는 것은 사용자의 몫입니다. 내 개인적인 의견은 WordPress와 같은 이전 버전과의 호환성을 주장하기로 한 결정은 주로 비즈니스 중심이라는 것입니다. WordPress의 대부분은 상업적인 부분이고 고객 기반의 상당 부분은 이전 PHP 버전을 실행합니다. 이는 양측이 서로를 방해하고 어느 정도 전체 PHP 커뮤니티의 발전을 방해하는 악순환입니다.
반면에 우리는 거의 20년이 지난 지금 WordPress만큼 인기 있고 관련성이 높은 소프트웨어 프로젝트가 많지 않다는 사실을 인식해야 합니다. 그렇다면 이전 버전과의 호환성에 대한 그들의 전략이 맞을까요?
슈퍼 에피소드
마지막으로 PHP에 대한 나의 오랜 꿈을 언급하지 않을 수 없습니다.
지금 이 글을 쓰고 있는데 언젠가 현실이 되기를 바랍니다. 적절한 IDE와 정적 분석기 지원을 갖춘 PHP의 상위 집합입니다.
내가 원하는 데에는 여러 가지 이유가 있습니다. 원한다면 읽고 들을 수 있지만 그것이 현실이 되기를 진심으로 바랍니다. 2023년에 널리 받아들여지고 지원되는 상위 집합을 보기까지는 시간이 좀 걸리겠지만, 몇 가지 작은 단계는 이미 시작되었습니다. 나는 확실히 PXP를 주시할 것이며, 이는 상황을 보다 올바른 방향으로 이끌 것입니다.
결론적으로 2023년은 모든 개발자들이 좋아할 것 같은 느낌이 듭니다! 마지막으로, 여러분이 처음 오신 경우를 대비해 말씀드리고 싶습니다. 저는 JetBrains의 개발자 전도사인 Brent입니다.
참고: 원래 영어 주소는 다음과 같습니다: https://stitcher.io/blog/php-in-2023