PHP Annotated – July 2023

PHP Annotated 이미지

Roman Pronskiy가 쓰고 JetBrains에서 제공하는 PHP Annotated 2023년 7월호입니다.


PHP Annotated 7월호에 오신 것을 환영합니다! 엄선된 뉴스, 기사, 도구, 동영상을 통해 지난 한 달간 PHP 커뮤니티에서 가장 흥미로운 발전 사항을 요약해드립니다.

Highlights

PHP 8.3.0 beta 1 released

PHP 8.3.0 베타 1 출시

첫 번째 베타 릴리스를 통해 활발한 개발 단계가 종료되었으므로 8.3 브랜치의 새로운 기능 및 변경 사항 목록은 최종 버전으로 간주할 수 있습니다.

Mac을 사용하는 경우 Nuno Maduro의 PHP 8.3 설치 방법을 확인하세요. 이외에는 Docker 이미지가 번거로움 없이 시도해 볼 수 있는 가장 좋은 옵션일 것입니다.

Thomas Jarrand 덕분에 이제 php.net에 모든 PHP 브랜치의 현재 상태를 확인할 수 있는 엔드포인트가 생겼습니다: php.net/releases/states.

elePHPant 디자인의 저자이자 PHP 8 로고의 저자 Vincent Pontier가 PHP 9 로고에 대한 아이디어를 떠올렸습니다:

php9 이미지 아이디어

PHP Version Stats – July, 2023

PHP 버전 통계 - 2023년 7월

클라이언트가 packagist.org로 보내는 데이터(예: 컴포저 업데이트 명령 실행 시)를 기반으로 사용하는 PHP 버전에 대한 정기적인 개요입니다. 68.8%의 클라이언트가 PHP 8.*을 사용하고 있으며, PHP 7.*은 29.7%를 차지합니다. PHP 8은 59.7%였던 작년과 비교하면 느리지만 좋은 성장세입니다.
사용자 세그먼트가 약간 다를 수 있는 Remi 리포지토리 통계에 따르면, 35%의 사용자가 PHP 8.*을, 63%의 사용자가 PHP 7.*을 사용하고 있습니다.

참고로 워드프레스는 다음 워드프레스 6.3 릴리스에서 PHP 5 지원을 중단할 예정입니다. 현재 워드프레스 설치의 5.5%가 여전히 PHP 5를 사용하고 있습니다.

PHP Core

대부분의 코어 소식은 PHP 재단의 PHP Core Roundup 시리즈에서 자세히 다루고 있으므로 여기서는 몇 가지만 간략하게 언급하겠습니다:

❌ RFC: Interface Default Methods

https://wiki.php.net/rfc/interface-default-methods

Levi Morisson의 이 RFC는 많은 논의를 불러일으켰습니다.
Levi는 인터페이스에 메서드에 대한 구현이 있을 수 있다고 제안했는데, 이는 Kotlin, Swift(extend protocols), Java, C# 및 기타 언어에서 가능한 것과 유사합니다.

다중 상속이 잘못되었고 인터페이스에 구현이 있어서는 안 된다고 생각한다면 래리 가필드는 이상한 아이디어를 거부하기 전에 다시 한 번 생각해 볼 것을 제안합니다.

Brent도 What is a Best Practice? 동영상에서 이에 대해 이야기하고 있으며, “Is A” or “Acts As” 게시물에서 더 자세히 설명합니다.

조지가 언급했듯이 일부 사람들은 이 제안이 PHP 8.3의 기능 동결에 너무 근접한 급격한 변화이기 때문에 반대표를 던졌을 수도 있습니다.

✅ RFC: Marking overridden methods (#[\Override])

https://wiki.php.net/rfc/marking_overriden_methods

PHP 8.3에는 #[\Override] 속성이 새로 추가됩니다. 메서드에 적용하면 엔진이 부모 클래스 또는 구현된 인터페이스에 같은 이름의 메서드가 있는지 확인하라는 메시지를 표시합니다.

이는 Java, Kotlin, Swift 및 C#과 같은 다른 언어의 기능과 유사합니다.

✅ RFC: Path to Saner Increment/Decrement operators

https://wiki.php.net/rfc/saner-inc-dec-operators

++-- 연산자의 동작은 PHP 8.3에서 더욱 일관성 있게 변경됩니다.

이 문제를 실제로 보여주고 싶다면 이 예제를 확인해 보세요:

-> PHP 8.2까지 위 문제의 정답은 7입니다.

✅ RFC: PDO driver specific subclasses

https://wiki.php.net/rfc/pdo_driver_specific_subclasses

현재 PHP에는 모든 데이터베이스에 대해 단일 PDO 클래스가 있습니다. 그러나 설치한 실제 DB 드라이버 확장에 따라 이 클래스는 다른 메서드 집합을 가질 수 있습니다.

Dan Ack의 RFC는 지원되는 각 데이터베이스에 대해 별도의 클래스가 있는 특정 서브클래스 집합을 추가할 것을 제안합니다.

✅ PR: Add fallback value syntax for ini variables

https://github.com/php/php-src/pull/11351

가브리엘 폰테스가 PHP 8.3에 깔끔하게 추가한 기능입니다! 환경 변수 외에 php.ini 설정에서 기본값을 사용할 수 있게 됩니다:

xdebug.start_with_request = ${PHP_XDEBUG_START_WITH_REQUEST:-default}

dunglas/php-dev-docker – Docker image to hack the PHP interpreter.

dunglas/php-dev-docker – PHP interpreter를 해킹하기 위한 Docker 이미지.

PHP 버그(segmentation faults)를 추적하고, 확장 기능 또는 PHP 인터프리터 자체를 개발하는 데 편리한 Docker 이미지입니다.

Kévin Dunglas는 PHP 인터프리터를 디버깅하고 개발하기 위해 특별히 Docker 이미지를 준비했습니다. PHP 스크립트로 인해 세그폴트가 발생하나요? PHP 확장을 개발하고 싶으신가요? 이 이미지가 바로 여러분을 위한 것입니다! 필요한 모든 도구가 포함되어 있습니다.

Tools

  • NativePHP – PHP로 데스크톱 애플리케이션 개발
    Marcel Pociot가 만든 이 도구는 일반적인 웹 앱을 구축할 때와 마찬가지로 크로스 플랫폼 데스크톱 앱을 구축할 수 있는 간단한 API와 툴을 제공합니다.
    이 도구는 일렉트론이나 타우리를 사용하므로 이름에 ‘네이티브’라는 단어가 약간 오해의 소지가 있을 수 있습니다. 하지만 PHP 개발자의 관점에서 보면 이 모든 것이 익숙한 도구와 구문으로 멋지게 포장되어 있습니다. Marcel이 이 발표에서 작동 방식을 설명했습니다.

    현재까지는 Laravel에서만 작동하지만, 다른 프레임워크와 네이티브 PHP용 어댑터를 구현할 예정이라고 합니다.

    다음은 NativePHP로 구축된 앱의 예시입니다. 크론 작업을 관리하기 위한 간단한 도구인 simonhamp/cronikl입니다.

  • https://herd.laravel.com/ - 원클릭 PHP 개발 환경.
    Marcel Pociot와 Beyond Code의 또 다른 도구입니다. macOS에서 PHP를 위한 로컬 개발 환경으로, 모든 것이 미리 빌드되어 제공되므로 홈브루나 다른 것을 다룰 필요가 전혀 없습니다.
    저는 마찬가지로 로컬 환경을 제공하지만 더 많은 유연성을 제공하는 IndigoStack의 열렬한 팬입니다.

  • aschmelyun/diode - Laravel을 위한 WASM 기반 로컬 개발 환경과 wp-now에서 영감을 얻은 로컬 개발 환경에 대한 또 다른 접근 방식입니다. 이 비디오는 비하인드 스토리를 제공합니다.

  • yzen-dev/plain-to-class - 이 Hydrator는 데이터를 유형화된 객체로 변환합니다. 상속이 필요하지 않고 프레임워크에 의존하지 않으며 벤치마크에 따르면 가장 효과적인 방법 중 하나입니다.

  • cerbero90/json-parser - 종속성이 없는 구문 분석기로 모든 소스에서 메모리 효율적인 방식으로 대용량 JSON을 읽을 수 있습니다.

  • alexandre-daubois/lazy-stream - 필요할 때만 스트림에 데이터를 쓰고 읽을 수 있습니다.

  • NumPower - 이 PHP용 C 확장 프로그램은 PHP에서 효율적인 과학 컴퓨팅을 위한 기반을 제공하고, 이미 존재하며 이를 활용할 수 있는 머신 러닝 도구와 라이브러리를 활용하기 위해 만들어졌습니다.
    “A library for numerical calculations and scientific computing made for PHP”

Symfony

Laravel

Other frameworks

기타

Fun

Conferences

방문하고 발표를 신청할 만한 다음 PHP 행사를 확인해 보세요:

  • PHPKonf – Istanbul, Turkey, September 2, 2023. CFP 🆕
  • CakeFest – Los Angeles, CA, USA, September 28–Oct 3, 2023.
  • Longhorn PHP – Austin, TX, USA, November 2–4, 2023.
  • PHPCon Poland – Zawiercie, Poland, November 17–18, 2023. CFP 🆕
  • Laracon AU – Sydney, Australia, November 16–17, 2023.
  • SymfonyCon – Brussels, Belgium, December 7–8, 2023. CFP
  • PHP UK – London, UK, February 15–16, 2024. CFP 🆕

다음 PHP 밋업이 언제 열리는지 궁금하다면 Tomas Votruba가 운영하는 멋진 밋업 애그리게이터 friendsofphp.org를 참고하세요. php.net - 이벤트에도 캘린더가 있습니다: 2023년 6월.