PhpStorm 2022.1은 여러 줄 및 중첩 array shape, 인플레이스 Extract Method 리팩터링, Blade 템플릿, WordPress, PHP의 제네릭에 대한 향상된 지원 등을 제공하는 주요 업데이트 버전입니다.
PHPDoc 블록의 array shape은 PhpStorm 2021.2 버전부터 지원되었습니다. 그러나 이는 하나의 줄과 단일 수준의 어노테이션만 지원했습니다.
PhpStorm 2022.1에서는 PHPDoc과 #[ArrayShape] 속성 모두의 여러 줄 및 중첩 array shape에 대한 완전한 지원을 추가했습니다.
array shape 어노테이션의 추가로 키에 대한 코드 완성을 이용할 수 있고 단순한 배열 데이터 구조 또는 객체와 유사한 배열의 값 타입을 추론할 수 있습니다. PhpStorm에서 PHPDoc 및 속성 구문을 원하는 대로 모두 사용할 수 있습니다. 구문은 반환 타입 및 매개변수 타입에 지원됩니다.
Extract Method(메서드 추출)는 PhpStorm에서 가장 많이 사용되는 리팩터링 중 하나입니다. 코드를 단순화하고 새 메서드를 만들려면 코드 부분을 선택하고 ⌘⌥M(Cmd+Alt+M/Ctrl+Alt+M)을 누르기만 하면 됩니다.
이전에는 리팩터링 구성을 위한 대화상자가 열렸습니다. 하지만 팝업을 좋아하는 사람은 아무도 없으므로 이제 대부분의 경우 메서드를 추출하기 위해 인플레이스 리팩터링을 대신 사용할 수 있습니다.
더 이상 대화상자가 나타나지 않으며 에디터에서 즉시 새 메서드(또는 함수)가 생성됩니다. 커서가 활성화되어 새 메서드의 이름을 편집할 수 있습니다.
이전에 PhpStorm에서는 Blade 템플릿의 모든 코드 블록이 독립적인 범위로 처리되어, 이로 인해 코드 완성과 코드 분석 기능 이슈가 발생했습니다.
PhpStorm 2022.1에서는 IDE가 Blade 템플릿을 처리하는 방식이 크게 개선되었습니다. 이에 따라 .blade.php
파일에서 훨씬 편리하게 코드 완성 기능을 이용할 수 있습니다.
Blade 템플릿의 코드 완성 및 서식 지정과 관련된 문제도 많이 해결되었습니다. 자세히 알아보기
PhpStorm에서 파일 경로를 ⌘+클릭(Ctrl+클릭)하면 에디터에서 해당 파일을 열 수 있습니다. 경로가 WordPress 함수와 혼합되었을 때는 WordPress 코드의 동적 경로에 대해 이 방법이 작동하지 않았습니다.
이번 릴리스에서는 경로에 get_template_directory_uri()
함수 지원이 추가됩니다. 다음 업데이트에서는 더 많은 함수가 지원될 예정입니다.
WordPress 후크 시스템은 강력하지만 후크가 호출된 위치에서 핸들러가 선언된 위치로 점프하는 것은 불가능했습니다.
이제 호출 왼쪽에 여백 아이콘이 있습니다. 등록 및 기타 호출을 포함하여 후크 사용 위치의 목록을 보려면 이 아이콘을 클릭하세요.
아시다시피, PhpStorm은 내장된 '코드 인식' 기능 외에도 코드에 대한 외부적 지식도 가지고 있습니다. 이 지식은 .phpstorm.meta.php 파일 형식으로 제공됩니다. 이를 이용하여 PhpStorm에 코드베이스에 대한 추가 정보를 알려 코드 완성을 개선할 수 있습니다.
매직 메서드인 _call
또는 _callStatic
을 사용하는 경우, 이러한 메서드는 정의되지 않기 때문에 코드 완성이 실행되지 않습니다.
이 릴리스에서는 그에 해당하는 메타데이터 항목을 추가하여 이러한 호출에 대한 자동 완성을 얻을 수 있습니다.
동적 호출을 자동으로 처리하여 매개변수 값에서 특정 메서드 이름을 받을 수도 있습니다.
이제 .phpstorm.meta.php에서 공용체 타입을 @|MyClass
로 지정할 수 있어 모의 코드에 대한 코딩 지원이 개선되었습니다.
문서에서 다른 메타데이터 기능에 대해 자세히 알아보세요.
PhpStorm에서 어노테이션 기반 제네릭에 대한 지원이 계속 개선되고 있습니다. 이번 릴리스에서는 다음과 같은 몇 가지를 포함하여 다양한 사례가 포함되었습니다.
@psalm-import-type
, @phpstan-import-type
@psalm-trace
, @phpstan-trace
@method
태그의 제네릭 PhpStorm 2022.1에서는 비어 있는 새 프로젝트를 만들 때 해당 프로젝트에 대한 composer.json
파일을 자동으로 생성하고 원하는 종속성을 제공하는 옵션을 사용할 수 있습니다. 프로젝트가 생성되면 PhpStorm에서 종속성을 설치하라는 메시지가 표시됩니다.
Event Log(이벤트 로그) 인스턴스가 새로운 Notifications(알림) 도구 창으로 변경되었습니다. 이 창을 활용하면 IDE 알림을 간편하게 계속 파악할 수 있어 중요한 사항을 놓치는 일이 줄어듭니다. 기본적으로 새 도구 창은 IDE 창의 오른쪽 하단에 있습니다. 모든 알림은 Suggestions(제안) 및 Timeline(타임라인)의 두 가지 카테고리로 제공됩니다.
메인 메뉴 Edit(편집) | Find(찾기) | Search Structurally…(구조적으로 검색...)에서 Structural Search and Replace(구조 검색 및 바꾸기)를 호출해보세요.
Structural Search and Replace 대화상자에 모든 템플릿 목록이 표시되어 템플릿을 더 쉽게 탐색할 수 있습니다.
또한 Structural Search and Replace 대화상자의 오른쪽 상단 모서리에 Pin Dialog(대화상자 고정) 아이콘이 추가되었습니다.
이제 에디터 탭 사이에 작업 공간을 너비가 같도록 균등하게 분할할 수 있습니다. Settings(설정)/Preferences(환경 설정) | Advanced Settings(고급 설정) | Editor Tabs(에디터 탭) | Equalize proportions in nested splits(중첩된 분할의 비율을 동일하게 변경)를 설정하면 됩니다.
이제 UML 다이어그램을 yEd .graphml, JGraph .drawio, Graphviz .dot, Mermaid .md, Plantuml 및 IntelliJ IDEA .uml 파일로 내보낼 수 있어 타사 도구와 호환성이 개선되었습니다.
많은 경우 README 파일에는 앱을 실행하는 데 필요한 단계 및 사용해야 할 명령어 목록이 설명되어 있습니다. PhpStorm 2022.1에서는 Markdown 파일에서 바로 이러한 명령어를 실행할 수 있습니다. 명령어 왼쪽에 있는 여백에서 Run(실행) 아이콘을 클릭하기만 하면 됩니다.
또한 Markdown 블록에 새로운 Copy code snippet(코드 스니펫 복사) 액션이 추가되어, 콘텐츠를 클립보드에 빠르게 복사할 수 있습니다.
Markdown 파일의 서식을 쉽게 지정할 수 있도록 텍스트 선택 시 표시되는 플로팅 툴바를 재작업했습니다. 디자인이 새로워졌을 뿐 아니라 툴바에서 목록 생성 기능, 헤더 스타일 선택을 위한 메뉴도 제공됩니다.
또한 툴바를 사용자 지정할 수 있으므로 가장 필요한 옵션을 추가할 수 있습니다. 이렇게 하려면 Settings(설정) / Preferences(환경 설정) | Appearance & Behavior(모양 및 동작) | Menus and Toolbars(메뉴 및 툴바) | Markdown Editor Floating Toolbar(Markdown 에디터 플로팅 툴바)로 이동하면 됩니다.
도입된 변경 사항을 더 쉽게 살펴볼 수 있도록 Annotate with Git Blame(Git Blame으로 어노테이션 추가) 기능을 개선했습니다. 어노테이션에 마우스를 올리면 IDE에서 바로 코드 줄의 차이점이 강조 표시됩니다. 또한 해당 어노테이션을 클릭하면 Git Log(Git 로그) 도구 창이 열립니다.
IDE에서 바로 변경 사항을 로컬로 적용하거나 커밋할 수 있으므로 PhpStorm의 제안된 변경 사항을 더 쉽게 활용할 수 있습니다.
이제 Commit Details(커밋 세부정보) 패널에 GPG 서명 및 빌드 상태에 대한 정보가 포함됩니다. 이전에는 이 데이터가 Git 로그에서 하나의 열로만 표시되었습니다.
Git File History(Git 파일 기록) 도구 창의 새 UI는 이제 색인 생성 프로세스와 별도로 작동합니다. 새 인터페이스에서는 로그 색인이 해제되어 있어도 데이터가 표시됩니다.
이상이 이번 릴리스의 가장 중요한 변경 사항입니다. 이번에 구현된 모든 세부 사항과 기타 멋진 개선 사항을 자세히 살펴보려면 PhpStorm 블로그에서 릴리스 발표를 확인하세요.