PhpStorm 2024.3의 새로운 기능

이번 버전의 주요 사항은 다음과 같습니다.

  • PHP 8.4 지원
  • AI Assistant 개선
  • xdebug_notify() 지원
  • Laravel Herd의 인터프리터

PHP 8.4 지원

PhpStorm 2024.3에는 기능이 풍부한 PHP 8.4로 원활히 업그레이드할 수 있도록 도와주는 새로운 검사와 빠른 수정이 포함되어 있습니다. 아래는 PhpStorm 워크플로에서 새로운 PHP 8.4 기능이 어떻게 지원되는지 설명하는 간략한 개요입니다.

프로퍼티 훅

현대 PHP 역사상 가장 큰 변화 중 하나인 프로퍼티 훅은 프로퍼티의 getset 훅을 구현하도록 허용하여 상용구 getter와 setter를 없애기 위해 만들어졌습니다.

PhpStorm은 프로퍼티 훅(승격된 프로퍼티의 프로퍼티 훅 포함)에 다음을 제공합니다.

  • getter와 setter를 getset 프로퍼티 훅으로 바꾸는 빠른 수정.
  • 프로퍼티 훅을 프로퍼티에 추가하는 인텐션 액션.
  • 프로퍼티 훅의 본문 삽입 시 getset 키워드의 코드 완성.
  • Generate(생성) | Getters and Setters(Getter 및 Setter)와 유사한 생성 액션으로 getset 훅을 생성하는 기능.
  • 축약된 표기법으로 변환될 수 있는 프로퍼티의 자동 탐지 및 이러한 프로퍼티를 변환하는 빠른 수정.
  • 프로퍼티 훅의 문법과 논리가 적절히 사용되는지 확인하는 검사.

비대칭 가시성

비대칭 가시성을 활용하면 타입이 있는 프로퍼티의 읽기 및 쓰기 작업에 별도의 가시성을 정의할 수 있습니다.

PhpStorm 2024.3에서는 코드 내의 비대칭 가시성 범위가 제대로 구현되도록 하기 위해 다음에 대한 검사와 빠른 수정이 제공됩니다.

  • 불필요한 비대칭 가시성 제어자.
  • 프로퍼티의 set 가시성을 메인(get) 가시성보다 넓게 설정하려는 시도.
  • private (set) 프로퍼티의 불필요한 final 제어자.
  • 상속된 프로퍼티에서 프로퍼티 가시성을 좁히려는 시도.
  • set 가시성 범위 밖의 비대칭 가시성 프로퍼티를 수정하려는 시도.

새로운 배열 함수

PhpStorm 2024.3을 사용하여 foreach 루프를 새로 추가된 array_find(), array_find_key(), array_any()array_all() PHP 8.4 함수로 변환할 수 있습니다.

new에서 소괄호 제거

PhpStorm 2024.3에서는 (new MyClass())->method() 타입의 구조에서 new 식 주변의 소괄호를 제거할 수 있습니다.

AI Assistant  플러그인

JetBrains AI Assistant 기능은 AI Pro 구독이 있을 때 또는 평가판 버전에서만 사용할 수 있다는 점에 유의하세요.

PHP를 위한 JetBrains의 새로운 코드 완성 모델

PHP를 위한 AI 코드 완성 기능의 품질을 크게 개선하고 지연 시간은 줄였습니다. 이러한 개선 사항은 더 빠르고, 스마트하며 컨텍스트를 잘 인식하는 클라우드 코드 완성을 위해 최적화된 JetBrains의 새로운 자체 대형 언어 모델(LLM)인 Mellum을 기반으로 합니다.

JetBrains의 새로운 LLM에 관한 추가 정보는 이 블로그 게시물을 참조하세요.

제안된 코드의 구문 강조 표시

이제 인라인 코드 완성 제안에도 구문 강조 표시가 적용되어 코드 가독성이 개선됩니다.

코드 제안을 점진적으로 수락

여러 줄 코드 제안을 이제 한 번에 모두 다 수락하거나(Tab 누르기) 한 단어씩(Ctrl+→) 또는 한 줄씩(End) 수락할 수 있습니다.

인라인 AI 프롬프트

새로운 인라인 AI 프롬프트 기능이 추가되어, 이제 사용자가 에디터에서 바로 자연어로 요청을 입력하면, AI Assistant가 해당 요청을 탐지하고 처리합니다. 추가적인 조치를 취하지 않아도 즉시 요청이 해석되어 코드 제안이 생성됩니다.

AI Assistant가 변경한 줄의 여백에 PhpStorm이 보라색 표시를 남기므로 업데이트된 곳을 쉽게 확인할 수 있습니다. 제안이 마음에 들지 않으면 여백의 보라색 블록을 클릭하거나 Ctrl+/를 눌러 초기 프롬프트를 조절할 수 있습니다.

향상된 컨텍스트 관리 기능

이번 업데이트에서는 AI Assistant가 제안을 제공할 때 고려하는 컨텍스트를 보다 투명하고 직관적으로 관리할 수 있도록 했습니다. 새로워진 UI를 통해 컨텍스트로 포함된 모든 요소를 ​​보고 관리할 수 있어 완벽한 가시성과 통제력이 제공됩니다. 열려 있는 파일과 그 파일에서 선택한 코드가 이제 자동으로 컨텍스트에 추가되며, 필요에 따라 파일을 쉽게 추가하거나 제거하고 워크플로에 맞게 컨텍스트를 사용자 지정할 수 있습니다. 또한, 프로젝트 전체에 적용되는 지침을 연결하여, AI Assistant가 지침에 따라 코드베이스에서 응답하도록 할 수 있습니다.

풀/병합 요청의 제목과 설명 생성

AI Assistant가 IDE에서 직접 풀/병합 요청의 제목과 설명을 정확하게 생성하여 워크플로를 간소화하고 명확하고 간략한 설명을 제공합니다.

AI Assistant로 SQL 오류 처리

AI Assistant를 사용하여 SQL 쿼리 실행 오류를 처리하는 데 유용한 몇 가지 새로운 액션이 오류 메시지 영역에서 제공됩니다. Explain with AI(AI로 설명)를 선택하면 AI 채팅이 열리고 자동으로 프롬프트가 전송되며 AI Assistant가 오류 설명과 함께 응답합니다. Fix with AI(AI로 수정) 액션을 이용하면 쿼리 실행 오류의 수정안이 에디터에 생성됩니다.

JetBrains AI Assistant의 업데이트에 관한 모든 내용을 읽어보세요.

디버그

xdebug_notify() 지원

이제 PhpStorm에서 xdebug_notify() 함수가 보낸 출력을 구조적으로 처리할 수 있어 PHP 디버그 경험이 향상됩니다.

Xdebug 3.1에 추가된 xdebug_notify() 호출을 사용하면 PhpStorm 내의 디버그 콘솔로 변수를 선택적으로 출력할 수 있습니다.

Laravel 에코시스템

PhpStorm에서 Laravel Herd의 PHP 인터프리터 사용

Laravel Herd를 사용하는 Laravel 개발자를 위해, PhpStorm 2024.3은 현재 시스템에서 사용되는 Laravel Herd의 PHP 실행 파일의 경로를 자동으로 인식합니다. PhpStorm에서 이 인터프리터를 사용하려면 CLI 인터프리터 설정(PHP | CLI interpreter(CLI 인터프리터) | …)으로 이동한 다음 CLI Interpreters(CLI 인터프리터) 대화상자가 열리면 사전 구성된 옵션 목록 중에서 PHP 실행 파일을 선택하세요.

Pest 프레임워크 개선

PhpStorm 2024.3은 Laravel 개발자의 Pest 테스트 프레임워크 경험을 크게 개선합니다. Pest 3.0이 완전히 지원되며 IDE에서 바로 Pest를 사용하여 병렬 및 변이 테스트를 실행할 수 있습니다.

Pest 3.0으로 변이 테스트

최근 출시된 Pest 3.0에는 코드에 작은 변경 사항을 추가하여 테스트가 이를 탐지할 수 있는지 추적하는 변이 테스트가 도입되었습니다.

PhpStorm 2024.3에서도 Pest의 Run Tests (Pest) with Mutation(변이를 사용하여 테스트 실행(Pest)) 옵션을 다른 테스트 옵션과 마찬가지로 트리거할 수 있습니다(에디터에서 바로, 또는 Project(프로젝트) 도구 창에서, 또는 실행/디버그 구성을 통해). 테스트 결과는 전용 Pest Mutation(Pest 뮤테이션) 도구 창에서 검사할 수 있습니다.

단, IDE에서 사용 중인 PHP 인터프리터에 Xdebug 3.0+가 설치되었는지 확인하세요.

자세한 내용은 PhpStorm 문서를 참조하세요.

Pest 병렬 테스트

PhpStorm 2024.3에서는 Pest 테스트를 병렬 모드로 실행하기 위해 터미널로 전환할 필요가 없습니다. 테스트 파일로 이동한 다음, 에디터 내의 여백 아이콘에서, 또는 Project(프로젝트) 도구 창의 컨텍스트 메뉴에서, 또는 실행/디버그 구성을 통해 Run Tests (Pest) in Parallel(테스트를 병렬로 실행(Pest))을 선택하기만 하면 됩니다.

버전 관리 시스템

import 문의 병합 충돌 해결

PhpStorm이 import 문의 병합 충돌을 자동으로 해결합니다. 이 기능을 활성화하려면, 톱니바퀴 아이콘 아래에 있는 병합 대화상자에서 Resolve conflicts in import statements(import 문의 충돌 해결) 옵션을 선택하거나, Settings(설정) | Tools(도구) | Diff & Merge(Diff 및 병합)로 이동한 다음 Automatically resolve conflicts in import statements(자동으로 import 문의 충돌 해결)를 선택하세요.

Find in Files(파일에서 찾기) 업데이트

Find in Files(파일에서 찾기) 기능이 새로운 검색 범위인 Project Files Excluding Git-Ignored(프로젝트 파일에서 Git 무시 파일 제외)로 향상되었습니다. 이 옵션을 사용하면 .gitignore 파일에서 무시된 모든 파일이 검색 결과에서 제외되므로 프로젝트를 검색할 때 관련 코드에만 집중할 수 있습니다.

백그라운드에서 이루어지는 커밋 전 검사를 비활성화하는 옵션

이제 Settings(설정) | Version Control(버전 관리) | Commit(커밋)에서 새로운 Run advanced checks after a commit is done(커밋 완료 후 고급 검사 실행) 옵션을 사용하여 커밋 프로세스 중에 백그라운드 검사를 관리할 수 있습니다. 이 설정을 사용하면 커밋한 후 테스트와 검사를 실행할지 여부를 결정할 수 있습니다. 커밋하기 전에 이러한 검사를 완료하려면 이 기능을 비활성화하면 됩니다.

시작 화면의 브랜치 이름

시작 화면에 이제 브랜치 이름이 표시되어 여러 프로젝트 버전을 다룰 때 체계적으로 정리하고 작업 디렉터리 사이를 쉽게 전환할 수 있습니다.

데이터베이스 도구

MySQL과 MariaDB를 위한 조각 검사와 스마트 새로고침

PhpStorm이 이제 조각 검사를 지원합니다. 이전에는 내부 검사가 MySQL이나 MariaDB 데이터베이스에 있는 스키마의 전체 내부 검사만 수행할 수 있었고 단일 객체의 메타데이터를 새로 고칠 수는 없었습니다. 또한, 콘솔에서 DDL 구문이 실행되어 데이터베이스 스키마 내의 객체를 수정할 수 있게 되면, 그때마다 전체 스키마를 대상으로 전체 내부 검사가 실시되었습니다. 이는 시간이 많이 소요될 뿐만 아니라 워크플로에 지장을 주는 경우도 많았습니다.

이제 PhpStorm은 DDL 구문을 분석하고, 어떤 객체가 영향을 받는지 판단하여 영향을 받는 객체만 새로 고칠 수 있습니다. Database Explorer(데이터베이스 탐색기)에서 하나의 항목을 선택하고 Refresh(새로고침) 액션을 호출하면, 예전처럼 전체 스키마가 아니라 해당 객체만 새로 고쳐집니다.

과도한 수의 JOIN 절 검사

어떤 경우에는 과도한 수의 JOIN 절이 포함된 쿼리를 실행하면 성능이 저하될 수 있어 실행이 권장되지 않습니다. 이제 에디터가 이러한 쿼리를 탐지하고 강조 표시합니다. 이 검사는 IDE 설정에서 활성화할 수 있습니다. 활성화하려면 Editor(에디터) | Inspections(검사)로 이동한 후 SQL 섹션을 펼친 다음, Excessive JOIN count(과도한 JOIN 수)를 선택하세요.

플로팅 페이지 지정 툴바

그리드 페이지 지정을 데이터 에디터에서 더 명확하게 볼 수 있도록, 제어 기능을 툴바에서 데이터 에디터의 하단 중앙으로 옮겼습니다.

프런트엔드

보다 깔끔해진 디렉터리 검색 결과

이제 프로젝트 디렉터리에서 Find in Files(파일에서 찾기)를 사용할 때, PhpStorm이 기본적으로 node_modules 결과를 ​​제외하여 관련 없는 파일로 인한 혼란을 줄여줍니다. Settings(설정) | Advanced Settings(고급 설정)에서 Search in library files when “Directory” is selected in Find in Files(파일에서 찾기에서 '디렉터리'가 선택된 경우 라이브러리 파일에서 검색) 옵션을 활성화하면, 이전 동작을 복원할 수 있습니다.

프레임워크 구성 요소 탐색 및 이름 변경 개선

Vue, Svelte 및 Astro 구성 요소에 대한 에디터 내 힌트를 개선했습니다. Show component usages(구성 요소 사용 위치 표시) 액션으로 이제 import 문 및 마크업 템플릿 모두에서 사용 위치를 찾을 수 있습니다. 또한 일반 파일 참조를 검색할 때 구성 요소 사용 위치를 제외하기 위해 Show Component Usages 필터도 추가했습니다. Rename(이름 변경) 리팩터링도 업데이트되어 구성 요소 파일의 이름을 바꿀 때 사용 위치를 포함하는 옵션이 추가되었습니다.

Tailwind CSS 클래스의 색상 미리보기

Tailwind CSS 클래스의 색상 미리보기가 이제 에디터에 인라인으로 표시되어 색상을 구분하기가 더 쉬워졌습니다. 언어 서버 프로토콜(LSP)의 textDocument/documentColor 메서드에 대한 지원이 추가되어 모든 LSP 기반 플러그인이 바로 이 기능을 제공합니다.

Angular 관련 개선 사항

Angular 19를 사용하는 프로젝트의 경우, PhpStorm이 이제 구성 요소, 지시문 및 파이프에 독립 실행형 모드를 기본적으로 적용합니다. 독립 실행형 및 비독립 실행형 구성 요소 간에 쉽게 전환하도록 빠른 수정이 추가되었습니다. 사용되지 않은 독립된 import 문은 코드 서식 재지정 중이나 새로운 검사를 통해 자동으로 제거될 수 있습니다. @let 구문에 대한 지원도 개선되었습니다.

UI

선택한 텍스트가 있는 모든 위치를 강조 표시

PhpStorm은 기본적으로, 파일 내에서 선택한 텍스트의 모든 인스턴스를 자동으로 강조 표시합니다. 이에 따라 선택한 텍스트가 코드 전체에서 어디에 나타나는지 추적하기가 더 쉬워집니다. 이전 동작을 선호하는 경우 Settings(설정) | Editor(에디터) | General(일반) | Appearance(모양)에서 이 기능을 비활성화할 수 있습니다.