PhpStorm 2022.3의 새로운 기능

PhpStorm 2022.3 버전은 새로운 UI 테스트 버전, PHP 8.2 지원, PHP용 Code Vision, 빠른 수정 미리보기, ParaTest 지원, PHPDoc용 렌더링된 뷰, 데이터베이스 도구의 Redis 등을 포함하는 주요 업데이트입니다.

새로운 UI 테스트 버전

누구나 새로운 UI를 사용해 볼 수 있습니다. 단, 아직 베타/테스트 버전이므로 기본적으로 비활성화되어 있습니다.

Settings/Preferences(설정/환경 설정) | Appearance & Behavior(모양 및 동작) | New UI Preview(새 UI 테스트 버전)에서 새로운 UI를 적용해 보세요.

더 깔끔하게 개선된 새 UI는 집중력 분산을 최소화하며 더 빠르게 작동합니다. 또한 대부분의 작업을 익숙한 방식으로 수행할 수 있습니다.

사용자 경험

이번 릴리스에서 다양한 시각적 개선 사항이 추가되었습니다. 주요 개선 사항을 아래에서 확인해 보세요.

Code Vision

에디터의 PHP 코드 옆에서 PHP 심볼과 관련한 추가 정보가 표시됩니다(클래스, 특성, 인터페이스, 메서드 또는 함수).

사용 위치 번호가 표시되므로 심볼을 클릭하지 않아도 찾을 수 있습니다.

클래스 및 인터페이스에는 각각 상속자와 구현 개수가 표시됩니다.

또한 특정 코드에 변경 사항을 가장 많이 적용한 사용자에 대한 Git 정보가 제공되므로, 누가 코드 소유자이며 해당 코드 부분을 가장 잘 알고 있는지 빠르게 확인할 수 있습니다.

빠른 수정 미리보기

Alt+Enter를 누르면 일부 코드 문제를 자동으로 수정할 수 있습니다.

이제 수정을 적용하기 전 제안된 빠른 수정 또는 인텐션을 미리 확인하고 코드 변경 내용을 즉시 확인하세요.

PHPDoc 렌더링된 뷰

PhpStorm 2022.3에서 시각적으로 개선된 렌더링 및 HTML 서식 지정 지원 옵션을 사용하여 PHPDoc 블록의 표시 방식을 변경할 수 있습니다. 따라서 어노테이션이 많이 달린 코드를 더 편하고 쉽게 읽을 수 있습니다.

새로운 렌더링된 뷰로 전환하려면 PHPDoc 블록 옆의 여백 아이콘Rendered view gutter icon을 클릭하면 됩니다.

모든 PHPDoc 주석 렌더링을 활성화하려면 여백 아이콘을 마우스 오른쪽 버튼으로 클릭하고 Render All Doc Comments(모든 Doc 주석 렌더링)을 선택하세요.

빠른 문서 개선

함수, 클래스 또는 메서드에서 Ctrl+Q를 누르면, PhpStorm이 에디터에 문서를 바로 표시합니다.

문서 팝업이 대폭 개선되어 이제 IDE에서 모든 정보를 확인할 수 있으므로 브라우저를 켜고 문서를 검색할 필요가 없습니다.

PHP 8.2

PhpStorm 2022.3은 PHP 8.2를 완벽하게 지원합니다. IDE 변경 사항 대부분은 PhpStorm 워크플로에 유기적으로 적용되므로, 알고 계셔야 할 신규 기능만 소개하겠습니다.

readonly 클래스

readonly 클래스는 readonly 프로퍼티만 있는 클래스를 빠르게 선언하는 방법입니다. 이 클래스를 사용하면 데이터 무결성을 추가로 확보할 수 있습니다.

readonly 클래스와 관련하여 PhpStorm에서 제공되는 기능은 다음과 같습니다.

  • readonly 프로퍼티가 있는 클래스를 readonly 클래스로 변환하는 빠른 수정.
  • readonly 클래스가 readonly 하위 항목만 가질 수 있는지 확인하는 검사.
  • readonly 클래스의 불필요한 readonly 프로퍼티 탐지.
  • readonly 클래스에서 금지된 정적 및 동적 프로퍼티 검사.

사용되지 않는 동적 프로퍼티

PHP 8.2에 존재하지 않는 프로퍼티에 액세스하면 사용 중단 알림이 표시됩니다.

PhpStorm은 해당 사용 위치를 강조 표시하고 프로퍼티를 추가하거나 #[AllowDynamicProperties] 속성을 사용하여 오류를 수정하는 빠른 수정을 제공합니다.

타입 시스템 개선 사항

PHP 8.2에서 논리합 정규형(DNF) 타입 및 독립적인 null, truefalse 타입에 대한 지원이 추가됨에 따라 PhpStorm에서도 해당 타입을 지원합니다.

기타 사용이 중단된 기능

PHP 8.2에서 사용이 중단된 몇 가지 기능이 있습니다. PhpStorm을 활용하면 적합한 검사로 이러한 기능을 발견하고 빠른 수정으로 코드를 업데이트할 수 있습니다.

${} 문자열 보간 사용 중단

문자열 내에 변수가 필요한 경우 사용 가능한 보간 방식은 3가지였습니다. 그중 하나는 이제 지원 중단된 기능으로 표시되며 추후 제거될 예정입니다.

PhpStorm에서 해당 항목을 강조 표시하므로 Alt+Enter를 눌러 빠른 수정으로 코드를 업그레이드할 수 있습니다.

부분적으로 지원되는 callable은 더 이상 사용되지 않음

PHP 8.2에서 사용되지 않는 몇몇 함수 호출 방식이 있습니다.

PhpStorm에서 잘못된 코드를 강조 표시하므로,Alt+Enter를 눌러 빠른 수정으로 코드를 업그레이드할 수 있습니다.

PhpStorm은 전체 코드베이스를 한 번에 스캔하여 가능한 모든 문제를 발견할 수 있습니다. Code(코드) | Analyze Code(코드 분석) | Run Inspection by Name(이름별로 검사 실행)을 사용해 보세요. 예를 들어, 'dynamic property'를 검색하면 나머지 작업은 PhpStorm에서 처리합니다.

데이터베이스: Redis 지원

오랫동안 기다려온 Redis 지원의 사전 이터레이션이 구현되었습니다.

디버그

Xdebug 구성과 관련한 문제가 있을 경우 PhpStorm의 다음 기능을 활용하여 문제를 파악할 수 있습니다.

phpinfo() 출력 유효성 검사

PHP 스크립트 또는 페이지에 phpinfo() 호출을 추가하고 브라우저에 표시된 함수의 출력을 복사합니다. 다음으로 Run/Web Server Debug Validation(실행/웹 서버 디버그 유효성 검사)를 호출하면 대화상자가 표시되어 이전 단계의 phpinfo() 출력을 붙여넣을 수 있습니다.

PhpStorm은 서버 구성을 분석하여 가장 자주 발생하는 문제를 발견합니다.

스크립트로 서버 구성 검사

If the phpinfo() information didn’t help, you can use PhpStorm’s validation script on the server.

Xdebug로 반환 값 디버그

Xdebug 3.2에는 반환 값을 검사할 수 있는 추가 'return from function(함수에서 반환)' 디버그 단계가 있습니다.

PhpStorm 2022.3에서 이 새로운 기능이 지원됩니다. 트리거하려면 함수의 마지막 구문에서 Step Into(스텝인투)를 눌러보세요. 그러면 추가 변수가 Watches(감시점)에 표시됩니다.

PHP 도구 통합

ParaTest를 사용해 테스트 병렬 실행

오랫동안 기다려온 PhpStorm 병렬 테스트 지원을 드디어 선보입니다!

테스트를 병렬로 실행하려면 테스트 실행 구성에서 Use Paratest(Paratest 사용) 옵션을 선택하고, ParaTest 바이너리 경로가 올바르게 설정되었는지 확인해야 합니다. 일반적으로 composer.json에 ParaTest가 추가된 경우, 경로는 ./vendor/bin/paratest_for_phpstorm과 같습니다.

PHP용 외부 서식 지정 도구 사용

이제 Preferences(환경 설정) | PHP | Quality Tools(품질 도구)에서 외부 서식 지정 도구를 선택할 수 있습니다. You can now use FriendsOfPHP/PHP-CS-Fixer or squizlabs/PHP_CodeSniffer for this purpose.

Robo 통합

A popular task runner for PHP, Robo, received the following extended support:

  • 프로젝트에 Robo 클래스가 있는 경우 전용 도구 창인 Robo tasks(Robo 작업)를 사용할 수 있습니다.
  • Robo tasks 실행을 위한 실행 구성은 컨텍스트 메뉴에서 사용 가능하며, Robo 메서드에서 호출됩니다.
  • Robo 클래스의 각 public 메서드에는 각 구성에 대한 여백 아이콘이 있습니다.

Prophecy 지원

If you use the Prophecy mocking framework in your tests, working with it in PhpStorm will now be easier.

기타 PHP 기능

날짜 및 시간 형식 미리보기

이제 date() 형식을 외우거나 찾을 필요가 없습니다. PhpStorm 2022.3에서 날짜 형식 문자열에 마우스를 올리면 날짜 예시가 있는 툴팁이 표시됩니다.

또한 날짜 형식 문자열 편집 시 형식 매개변수로 인식되는 모든 문자에 대한 힌트와 함께 자동 완성이 표시됩니다.

array shape 반복시 코드 완성 지원

Support for array shape annotations was added in PhpStorm 2021.2, then in 2022.1, we added multiline and nested syntax support for array shapes.

array shape에서 마지막으로 누락되었던 지원은 PhpStorm 2022.3 버전에서 제공됩니다. 루프의 array shape 항목에 대한 완벽한 코드 완성 기능을 사용해 보세요.

새로운 Settings Sync(설정 동기화) 솔루션

기존 동기화 솔루션 2개(IDE Settings Sync(IDE 설정 동기화)Settings Repository(설정 저장소))를 통합하여 Settings Sync(설정 동기화)라는 하나의 솔루션으로 새롭게 선보입니다. 설정 동기화를 활용하면 서로 다른 IDE 및 시스템 간 설정을 안정적으로 동기화할 수 있습니다.

기존에 설정 동기화 솔루션은 사용하지 않았지만 새 솔루션을 사용해 보려는 경우 Settings/Preferences(설정/환경 설정) | Settings Sync(설정 동기화) | Enable Settings Sync(설정 동기화 활성화)에서 활성화해 주세요.

Docker

Docker Desktop 없이 WSL의 Docker 실행 파일 사용

Settings/Preferences(설정/환경 설정) | Build, Execution, Deployment(빌드, 실행, 배포) | Docker에서 이러한 유형의 연결을 설정할 수 있습니다.

새 컨텍스트 액션: Pull image(이미지 풀)

강조 표시된 이미지 이름에서 컨텍스트 액션( Alt-Enter)을 호출하고 Pull Docker image(Docker 이미지 풀)를 선택하면 Dockerfile, docker-compose.yml 또는 Testcontainers를 사용한 테스트에서 이미지를 실행하지 않고도 필요한 이미지를 풀할 수 있습니다.

.dockerignore 파일 형식 지원

.dockerignore 파일에서 강조 표시 및 코드 완성이 지원됩니다.

Dockerfile 파일의 heredoc 형식 지원

Dockerfile에서 바로 여러 줄의 스크립트를 사용할 수 있습니다.

Docker 컨텍스트에서의 Docker 연결

Set up additional Docker connections using Docker Contexts by calling the Add Service context menu in the Services view and selecting Docker Connections From Docker Contexts.

HTTP 클라이언트

HTTP 클라이언트의 긴 요청 서식 지정

이제 HTTP 클라이언트에서 URL이 긴 요청이 있을 경우 향상된 서식 지정 옵션이 제공됩니다. Put query parameters on separate lines(쿼리 매개변수를 별도의 줄에 배치) 컨텍스트 액션을 사용하여 쿼리를 여러 줄에 작은 조각으로 분할하여 배치할 수 있습니다.

요청 실행 전 스크립트

HTTP 클라이언트는 이제 요청 전에 실행되는 스크립트 블록을 지원합니다. 요청 실행 전 일부 데이터를 생성하고, 변수를 사용하여 후속 요청에 전달할 수 있습니다.

JavaScript 핸들러용 새로운 API

이제 PhpStorm에서 Crypto API가 제공되므로, HTTP 요청에 대한 md5 또는 sha1 해시 값을 계산할 수 있습니다.

더 많은 난수 생성 함수를 사용할 수 있어 빠른 API 테스트 수행 시 유용합니다.

웹 개발

새로운 Next.js 및 Vite 프로젝트 템플릿

새로운 Next.js 및 Vite 프로젝트 템플릿

PhpStorm 시작 화면의 New Project(새 프로젝트) 마법사에서 Vite 및 Next.js 프로젝트 템플릿이 지원됩니다. 또한 Vue 프로젝트 템플릿이 최신 표준을 준수하도록 업데이트했습니다.

JavaScript 및 TypeScript용 Code Vision

JavaScript 및 TypeScript용 Code Vision

이제 Code Vision 인레이 힌트가 JavaScript 및 TypeScript에도 제공됩니다. 이러한 힌트는 코드의 다양한 클래스, 메서드, 타입 별칭 및 인터페이스 사용 위치를 추적하는 데 도움이 됩니다.

Vue 업데이트

Vue 업데이트

PhpStorm은 이제 해결되지 않은 import 문을 처리할 수 있으며, Vue 구성 요소 가져오기 관련 제안 사항을 제공합니다. 또한 props 구조 분해 구문이 지원되고, Vue 라이브러리 구성 요소 props에 대한 코드 완성 및 타입 검사 동작이 개선되었으며 Nuxt 3 관련 몇몇 이슈도 수정되었습니다.

Vitest 지원

Vitest 지원

PhpStorm now supports Vitest, a Vite-native unit test framework! 여백 아이콘 사용을 비롯하여 가능한 모든 주요 방식으로 테스트를 실행, 재실행 및 디버그할 수 있습니다. 또한 All tests(모든 테스트) 시나리오에서 watch(감시) 모드가 기본적으로 활성화됩니다. 또한 watch 모드에서 스냅샷 테스트 및 커버리지도 지원되므로 코딩 중 커버리지에 대한 거의 즉각적인 피드백을 받아볼 수 있습니다.


이번 릴리스의 주요 변경 사항을 소개해 드렸습니다. 실제로는 더 많은 사항이 변경되었습니다. 릴리스의 개선 사항 목록은 PhpStorm 블로그의 릴리스 발표를 참조하세요.