PHP Annotated – June 2023
Roman Pronskiy가 쓰고 JetBrains에서 제공하는 PHP Annotated 2023년 6월호입니다.
PHP Annotated 6월호에 오신 것을 환영합니다. 엄선된 뉴스, 기사, 도구, 동영상을 통해 지난 한 달간 PHP 커뮤니티에서 가장 흥미진진하게 발전한 내용을 요약해 보겠습니다.
Highlights
Happy 28th birthday, PHP!
6월 8일, PHP가 28살이 되었습니다! 과거를 돌아보고 싶으시다면 Rasmus Lerdorf의 PHP 최초 공개 발표를 참조하세요.
앞으로도 개발자에게 힘을 실어주고 웹 기술의 경계를 넓히는 데 기여하기를 바랍니다. 생일 축하합니다, PHP! 🎉🥳🎂
JetBrains PhpStorm 팀은 PHP 커뮤니티 회원 20명에게 가장 좋아하는 코딩 트랙의 이름을 물어보았습니다. 그 결과 PHP로 코딩하는 동안 생산성을 더욱 높일 수 있도록 맞춤화된 재생 목록이 탄생했습니다:
https://open.spotify.com/playlist/02xXEV3NPVzuhgLg4tOpVr
활기차고 다양한 PHP 커뮤니티의 증거인 이 재생 목록에는 아래와 같은 PHP의 거장들이 기여한 콘텐츠가 포함되어 있습니다,
A testament to the vibrant and diverse PHP community, this playlist features contributions from PHP greats such as Christoph Rumpel, Jordi Boggiano, James Titcumb, Matthieu Napoli, Frank de Jonge, Stephen Rees-Carter, Cal Evans, Povilas Korop, Taylor Otwell, Benjamin Eberlei, Nicolas Grekas, Eric Barnes, Ian Landsman, Derick Rethans, Caneco, Zuzana Kunckova, Brent, Tim MacDonald, Mohamed Said, and Paul Redmond.
이 기념일을 기념하기 위해 Brent는 PHP Annotated YouTube channel에서 PhpStorm Elephpant 추첨을 진행했습니다.
Celebrating 20 Years of WordPress
28살은 아니지만, 충분히 훌륭한 성과입니다! 축하합니다!
PHP 8.3 Alpha 1 available for testing
첫 번째 알파 버전이 출시되어 PHP 8.3 릴리즈 프로세스의 시작을 알렸습니다. 업데이트는 정해진 일정에 따라 2주마다 릴리스되며 최종 릴리스는 11월 23일경에 예정되어 있습니다.
7월 18일에 기능 동결이 예정되어 있으므로 일부 변경 사항이 릴리스에 반영되지 않을 수도 있습니다. 현재 가장 주목할 만한 변경 사항은 다음과 같습니다:
- Readonly amendments
- Anonymous readonly classes
- Arbitrary static variable initializers
- Typed class constants
- New json_validate() function
- Dynamic class constant fetch
- More Appropriate Date/Time Exceptions
모든 변경사항에 대해 자세히 알아보려면 브렌트의 What’s new in PHP 8.3를 참조하세요.
Mac을 사용하는 경우, shivammathur/homebrew-php를 통해 Nightly 채널을 통해 홈브루로 PHP 8.3을 사용해 볼 수 있습니다. 그렇지 않은 경우, 번거로움 없이 사용해 보려면 Docker 이미지가 가장 좋은 옵션일 것입니다.
- "What is the newest PHP version?"
— Povilas Korop | Laravel Courses Creator & Youtuber (@PovilasKorop) May 17, 2023
- "What the latest SUPPORTED version?"
- "When is the next version due?"
- "When my specific PHP version will stop being supported?"
All answers to these - on this PHP documentation page: https://t.co/VTVmWkwIBZ pic.twitter.com/anp9AUoO7F
- “최신 PHP 버전은 무엇인가요?”
- “지원되는 최신 버전은 무엇인가요?”
- “다음 버전은 언제 출시되나요?”
- “특정 PHP 버전은 언제 지원이 중단되나요?”
이에 대한 모든 답변은 이 PHP 문서 페이지에서 확인할 수 있습니다: https://php.net/supported-versions.php
PHP 8.1.20 and PHP 8.2.7 have been released
PHP 8.1.20 및 PHP 8.2.7이 릴리스되었습니다.
❗ 모든 사용자는 이러한 보안 릴리스로 업데이트할 것을 강력히 권장합니다.
❗️Packagist.org maintainer account takeover
Packagist.org 관리자 계정 탈취
어떤 일이 발생했는지, 영향을 받았는지 알아보세요.
PhpStorm 2023.2 Early Access Program Is Open
정식 출시에 앞서 IDE에 추가된 최신 기능을 무료로 미리 사용해 보세요.
PHP가 르네상스를 맞이하고 있나요?
PHP가 “잘 작동한다”는 명성을 되찾고 있습니다. 이 언어는 더 빠르고, 더 안전하며, 더 즐겁게 사용할 수 있도록 진화하고 있습니다.
아직 PHP에 대해 회의적인 친구들과 공유할 수 있는 몇 가지 링크를 소개합니다:
- 📺 PHP is the future by Aaron Francis (mostly about Laravel).
- Go with PHP by Mohamed Said.
- 📺 PHP in 2023 by Brent.
ChatGPT and PHP
Frédéric Bouchery가 Promises RFC와 Generics RFC를 예로 들어 PHP RFC 초안을 쉽게 생성하는 방법을 설명하는 동안, 다음은 PHP에서 LLM을 사용하는 것과 관련된 몇 가지 링크입니다:
- Laravel을 사용하여 ChatGPT 플러그인 빌드하기 by Benjamin Crozat
- 라라벨을 사용한 ChatGPT 플러그인 by Juan Pablo Barreto.
- WIP 커밋 메시지에게 작별 인사 by Freek Van der Herten.
- AI는 유행이고 프로그래밍은 죽었다 by Andrew Schmelyun.
PHP Core
대부분의 핵심 소식은 PHP 재단의 PHP Core Roundup series에서 자세히 다루고 있으므로 여기서는 몇 가지만 간략하게 언급하겠습니다:
📣 RFC: Property hooks
이 RFC에서 Ilija Tovillo와 Larry Garfield는 get/set 함수를 사용하여 가상 프로퍼티를 선언할 것을 제안합니다.
디자인과 구문은 Kotlin과 가장 유사하지만 C# 및 Swift의 영향을 받기도 합니다.
class User implements Named |
📣 RFC: Marking overridden methods (#[\Override])
Tim Düsterhus는 새로운 #[\Override]
어트리뷰트를 도입할 것을 제안합니다. 이 속성을 메서드에 적용하면 엔진이 부모 클래스 또는 구현된 인터페이스에 같은 이름의 메서드가 있는지 확인하라는 메시지를 표시합니다.
interface I { public function i(): void; |
📣RFC: NameOf
Robert Landers는 글로벌 nameof()
함수를 추가할 것을 제안합니다. 이 함수를 사용하면 개발자가 거의 모든 사용자 정의 변수, property, 상수 또는 멤버의 이름을 빠르고 쉽게 검색할 수 있습니다.
echo nameof($variable); // variable |
Tools
- wp-now - 워드프레스 엔지니어링 팀의 로컬 개발 환경.
이 도구는 웹어셈블리를 활용하여 Node.js의 웹서버 위에서 PHP를 작동합니다. 도커 기반 환경보다 빠르며 모든 PHP 앱에서 사용할 수 있지만 DB를 실행하는 방법을 찾아야 합니다. - PHP Monitor 6.0 출시 - 이번 주요 업데이트에서는 새로운 PHP 버전 관리자, Valet을 설치하지 않고도 앱이 작동할 수 있는 새로운 독립형 모드 등이 도입되었습니다.
- pmjones/AutoShel - CLI 명령 이름을 지정된 네임스페이스의 PHP 명령 클래스에 자동으로 매핑하여 해당 클래스 내의 지정된 메인 메서드에 반영하여 인수 및 옵션 값을 결정합니다. 메서드 매개변수는 스칼라 값(int, float, string, bool) 또는 배열일 수 있습니다.
- jolicode/castor - 개발자 경험에 중점을 두고 설계된 작업 실행기 및 명령 런처로, PHP를 사용하여 구축되었습니다.
- ProjektGopher/whisky - 팀 전체에서 PHP 프로젝트의 git hook을 관리하고 적용하기 위한 간단하고 프레임워크에 구애받지 않는 CLI 도구입니다.
- schranz-search/schranz-search - PHP로 작성된 다양한 검색 엔진에 대한 검색 추상화. 현재 구현된 엔진으로는 Elasticsearch, Opensearch, Algolia, Meilisearch, RediSearch, Solr, Typesense 등이 있습니다.
- TestGenAI - Rector의 저자 Tomas Votruba가 만든 PHP 코드에 대한 단위 테스트를 생성하는 도구입니다.
- librarianphp/librarian - 휴고와 DEV에서 영감을 받아 PHP로 작성된 정적 사이트 생성기 및 마크다운 인덱서입니다. 개발 비하인드 스토리를 읽어보세요.
Symfony
- Symfony 6.3.0 출시
이번 업데이트에는 스케줄러 구성 요소, 메일러 및 알림 기능과의 웹후크 통합, 자산 맵퍼 구성 요소, Dependency Injection 개선, DX 개선, 새로운 알림 기능 통합, HttpClient 개선, Clock 개선 등 다양한 새로운 기능 및 개선 사항이 포함되어 있습니다. 새로운 심포니 6.3 시리즈에서 자세히 알아보세요. - 널 검사 및 예외와 작별하세요: Symfony에서 Maybe Monad 사용하기. by Aleksei Kankov.
- jolicode/qotd 애플리케이션 오픈 소스화 - 블로그 게시물에서 Grégoire Pineau가 jolicode/qotd 교육용 애플리케이션에서 symfony/ux 및 고급 PostgreSQL을 Doctrine과 함께 사용하는 방법에 대해 이야기합니다.
- Symfony 6.3+에서 요청 데이터를 DTO에 매핑할 때 매핑되지 않은 속성에 대한 값 확인 by Dejan Angelov
- oroinc/twig-inspector - 이 도구는 개발 중에 HTML 페이지 렌더링에 사용되는 twig 템플릿과 블록을 더 빠르게 찾을 수 있는 기능을 추가합니다.
Laravel
- laravel/octane 2.0.0 - Roadrunner v3 지원과 함께 출시되었습니다.
- TomasVotruba/punchcard - 이 도구는 구성 배열을 메서드 체이닝되는 객체로 대체하여 IDE에서 자동 완성을 가능하게 하고 기타 이점을 제공합니다.
- Laravel Package Ocean - 유용한 Laravel 패키지의 모음입니다.
- WendellAdriel/laravel-exa - 라라벨을 위한 완전관리형으로(Opinionated) 모듈화된 API 스켈레톤.
- nasirkhan/laravel-starter - 라라벨 10.x로 구축된 CMS와 유사한 모듈식 스타터 애플리케이션 프로젝트.
- Laravel Security Middleware by Steve (King) McDougall.
- 라라벨 보안 감사 문제 Top 10 by Stephen Rees-Carter.
- 다른 언어와 연결하는 라라벨 Queue by Chris Fidao.
- 📺 라라벨 연락처 앱 시리즈 by Bert De Swaef.
- 📺 풀 스택 틱톡 클론 만들기(Nuxt 3, Vue 3, Tailwind CSS, 라라벨) - @johnweeksdev는 Laravel, Vue, Tailwind로 기존 앱의 클론을 만드는 방법에 대한 인상적인 전체 길이의 튜토리얼을 제작해 왔습니다. 그의 프로젝트에는 TikTok, Instagram, Netflix, Facebook 등을 재현하는 작업이 포함되어 있습니다. 추천을 해준 Andrew Schmelyun에게 감사드립니다.
Other frameworks
- Yii 뉴스 2023, 2호 by Alexander Makarov.
- leafsphp/leaf 3 - 웹 앱과 API를 빠르게 구축하기 위한 간단한 프레임워크.
기타
- PHP에서 empty() 피하기 by Andreas Möller.
- 기술 부채는 과도하게 사용됩니다 by Larry Garfield.
- 마법이 너무 많다고요? by Matthias Noback.
당신이 이해하기 전까진 모든 것이 마법이죠
- WebAssembly로 PHP 취약성 완화하기 – VMware의 Jesús González가 WebAssembly를 사용하여 격리된 샌드박스에서 PHP 애플리케이션을 실행하는 방법을 설명합니다..
- PHP 애플리케이션을 위한 고성능 대기열 서비스의 강력한 기능 활용하기 - Pavel Buchnev가 PHP 애플리케이션에 RoadRunner를 사용하는 방법에 대해 설명합니다.
- Diff 속도 향상 | 나의 개발자 경험 - 마크스 스타브가 sebastian/diff의 속도를 크게 개선한 방법에 대해 이야기합니다. PHPUnit, Psalm, PHP-CS-Fixer, Codeception을 비롯한 수많은 도구가 이 diff 라이브러리를 활용하고 있으며, 이제 이러한 개선의 이점을 누리고 있습니다.
마르쿠스는 Racing Rector와 Doctor Rst Speedup에서 성능 조사를 계속했습니다. - PHP로 Esolang을 작성하자 by Ryan Chandler – PHP에서 Brainf*ck과 유사한 난해한 프로그래밍 언어를 작성하는 방법.
- 📺 PHP의 타입 시스템 해부? by George Peter Banyard
Conferences
오프라인 이벤트가 한창 진행 중입니다. 방문하고 발표를 신청할 만한 예정된 PHP 공연을 확인해 보세요:
- Laracon US – Nashville, TN, USA, July 19–20, 2023.
- CakeFest – Los Angeles, CA, USA, Sep 28–Oct 3, 2023.
- Longhorn PHP – Austin, TX, USA, November 2-4, 2023.
- SymfonyCon – Brussels, Belgium, December 7–8, 2023.
다음 PHP 밋업이 언제 열리는지 궁금하다면 Tomas Votruba의 멋진 밋업 애그리게이터 friendsofphp.org에서 확인할 수 있습니다. php.net - 이벤트에도 캘린더가 있습니다: 2023년 6월.