PhpStorm 2020.1의 새로운 기능

PhpStorm의 주요 업데이트를 통해 크게 향상된 생산성을 체험하세요.

별도의 설정 없이 지원되는 composer.json

간편한 종속성 관리: 이제 composer.json 파일 에디터에서 모든 액션이 지원됩니다.

애로우 함수 (Arrow Functions)

종속성 관리

composer.json 파일 내 패키지 작업이 한결 간편하므로 이전 종속성 관리 대화상자 지원은 중단됩니다.

새 패키지 추가를 위해 require(-dev) 섹션에 패키지 이름을 입력하거나 Ctrl+Space를 눌러 제안된 목록에서 필요한 항목을 선택할 수 있습니다.

특정 패키지의 지원되는 버전도 목록으로 표시됩니다.

새 composer.json 파일 생성

새 composer.json 파일 생성

새 프로젝트 시작 시 IDE에 있는 템플릿을 활용해 composer.json 파일을 생성할 수 있습니다. 프로젝트 트리를 마우스 오른쪽 버튼으로 클릭한 후 신규 -> composer.json 파일을 선택하세요.

패키지 설치 및 업데이트

패키지 설치 및 업데이트

PhpStorm은 composer.json에 지정되었지만 설치되지 않은 종속성을 탐지하여 해당 요소를 강조 표시합니다.

설치 방법: Alt+Enter를 누르고 Update package (패키지 업데이트) 또는 Update all packages(모든 패키지 업데이트)를 선택합니다.

파일 및 폴더 탐색

파일 및 폴더 탐색

패키지 선택 후 Ctrl+클릭하면 PhpStorm이 프로젝트 트리의 벤더 디렉터리에 포함된 패키지 폴더를 강조 표시합니다. 파일의 경우 에디터에서 열립니다.

Ctrl+클릭과 마찬가지로, Ctrl+B를 누르면 composer.json의 모든 링크를 브라우저에서 열 수 있습니다.

스크립트 구성 및 실행

스크립트 구성 및 실행

스크립트 섹션의 각 항목은 여백에 재생 아이콘이 있습니다. 이 아이콘을 클릭하여 스크립트를 즉시 실행할 수 있습니다.

이제 새 스크립트 항목을 추가할 경우 자동 완성 기능이 스크립트 참조, 벤더/빈 디렉터리의 2진 파일 및 프로젝트 소스의 모든 PHP 파일을 지원합니다.

PCOV 및 PHPDBG 코드 커버리지

PSR-12

Xdebug외에도, 이제 가벼운 PHP 확장자인 krakjoe/pcov 또는 기본 제공 PHPDBG를 활용하여 훨씬 빠르게 커버리지 보고서를 생성할 수 있습니다.

또한 테스트를 위한 실행 구성 생성도 지원됩니다. 실행 구성 설정으로 이동하여 드롭다운 메뉴에서 Xdebug, PCOV 또는 PHPDBG 중 원하는 커버리지 드라이버를 선택하세요.

원하는 드라이버를 선택하고 기본 도구 모음에서 Run with Coverage(커버리지로 실행) 버튼을 클릭한 후 커버리지 결과를 확인합니다.

PHPUnit Toolbox

WSL 추가 인터프리터

PhpStorm 2020.1은 빠르고 간편한 최신 PHPUnit 버전 업그레이드를 위한 도구를 제공합니다.

에디터에서 중단된 기능이 강조 표시됩니다. 중단된 항목을 커서로 가리킨 후 Alt+Enter 버튼을 누르면 표시되는 목록에서 원하는 빠른 수정을 선택할 수 있습니다. 또는 오류 설명 창 하단에서 선택할 수도 있습니다.

새 PHPUnit 테스트 클래스를 빠르게 생성하려면 클래스 이름에서 Alt+Enter 버튼을 눌러 Create new PHP Test(새 PHP 테스트 생성) 인텐션을 사용하세요.

향상된 PHP 유형 추론

PhpStorm의 핵심인 유형 추론 엔진에 개선 사항이 새롭게 추가되었습니다.

유형 지정된 속성

중복 @var 태그 탐지

유형 정보가 포함된 @var 태그에 중복이 있을 때 PhpStorm는 올바른 변수 유형을 인지하며 중복된 태그를 강조 표시합니다. Alt+Enter를 누르면 Remove @var (@var 삭제) 빠른 수정을 통해 중복 태그를 삭제할 수 있습니다.

애로우 함수 (Arrow Functions)

null 추적 기능 개선

null 값 가능성의 추적은 까다로운 작업으로 PhpStorm에서 탐지하지 못하는 공간이 있었습니다. 하지만 2020.1 버전은 더욱 향상된 추적 기능을 선보입니다. PhpStorm는 변수의 null 여부를 알려주므로 null 값 가능성 문제를 방지할 수 있습니다.

숫자 리터럴 구분 기호

array_map/filter 코드 완성

이제 array_map()array_filter() 함수로 전달된 클로저 내부의 매개변수에 대한 코드 완성 옵션이 전적으로 지원됩니다.

중첩된 Ternary 연산자

이니셜라이저의 제네릭이 아닌 배열 유형 추론

이제 알려진 항목 모음의 배열을 반복하는 경우 PhpStorm에서 자동 적용되므로 유형 지정 시 @var 태그를 추가할 필요가 없습니다.

기타 개선 사항

ML(머신러닝) 지원으로 코드 완성 순위 표시

ML(머신러닝) 지원으로 코드 완성 순위 표시

2019.3 버전부터 PHP 코드 완성 옵션에 적용되는 머신러닝 기반의 코드 완성 순위 지정 기능이 도입되었습니다. 이 기능은 코드 완성 팝업에서 가장 관련 있는 항목이 먼저 표시되도록 요소의 순서를 재정렬하여 코드 완성 기능을 개선합니다.

기본적으로 ML 지원 코드 완성 기능은 비활성 상태입니다. 해당 기능을 활성화하려면 Preferences/Settings(환경 설정/설정) | Editor(에디터) | General(일반) | Code Completion(코드 완성)으로 이동하여 Rank completion suggestions based on Machine Learning(머신러닝 기반으로 코드 완성 제안 순위 표시) 및 PHP 체크박스를 선택합니다.

메서드 리팩터링 이동

메서드 리팩터링 이동

이제 단일 액션만으로 간편하게 클래스에서 다른 클래스로 메서드를 이동할 수 있습니다.

메서드를 커서로 가리킨 후 F6를 누릅니다(또는 Ctrl+T, 3). 그리고나서 대상 클래스를 선택하면 이동이 완료됩니다.

유형 어노테이션만 포함된 PHPDoc 제거

유형 어노테이션만 포함된 PHPDoc 제거

PHPDoc 블록에 유형이 있는 @param 태그만 포함될 경우 매개 변수에 대한 기본 유형 선언을 우선하고, PHPDoc 블록을 완전히 삭제 할 수 있습니다.

Alt+Enter를 누르고 Remove redundant PHPDoc comment(중복 PHPDoc 주석 제거) 빠른 수정을 선택하세요.

중복 삼항식 검색

중복 삼항식 검색

PhpStorm는 간소화될 수 있는 삼항식을 찾아 강조 표시합니다. 빠른 수정(Alt+Enter) 을 사용하여 해당 식을 간단한 동치 표현식으로 대체할 수 있습니다.

중복 pass-by-ref 발생 제거

중복 pass-by-ref 발생 제거

pass-by-reference 사용 시 예상치 못한 결과가 나올 수 있습니다. PhpStorm 2020.1 버전은 불필요한 passed-by-reference 표시가 추가된 매개변수를 탐지하여 강조 표시합니다.

동일한 원리가 foreach 루프의 중복 by-ref 값에도 적용됩니다.

메타데이터

특수 파일인 .phpstorm.meta.php에 있는 추가 정보를 제공하여 PhpStorm의 "코드 인식" 기능이 확장됩니다. 몇 가지 개선 사항을 확인해 보세요.

재정의, 맵, 유형의 매개변수 색인

재정의, 맵, 유형의 매개변수 색인

기존의 override(), map()type() 지시문으로는 함수의 첫 번째 매개변수 동작만을 수정할 수 있었습니다. 하지만 PhpStorm 2020.1에서 이 기능이 개선되어 이제 매개변수 색인을 명시적으로 지정할 수 있습니다.

애로우 함수 (Arrow Functions)

__get 을 이용한 속성 액세스 지원

매직 메서드 __get()을 활용하여 객체를 수신해야 한다면 유형 정보를 놓칠 가능성이 있습니다. @var 또는 @property 태그를 사용하는 대신 이 정보를 .phpstorm.meta.php 파일에 지정하세요. 이는 사전에 유형이 확인되지 않더라도 원활히 작동하는 방식입니다.

사용자 지정 종료점

사용자 지정 종료점

PhpStorm에서는 die()exit() 함수 또는 예외를 던지는 모든 함수를 호출을 종료하는 것으로 간주합니다. 하지만 애플리케이션의 경우 dd() 디버그 함수처럼 "종료점"으로 간주되는 기타 사용자 지정 함수가 존재할 수 있습니다. 이제 모든 함수를 종료점으로 표시할 수 있습니다.

ArrayAccess 객체의 키에 대한 코드 완성

ArrayAccess 객체의 키에 대한 코드 완성

기타 객체의 배열 컨테이너로 객체를 사용하고자 할 때에도 메타데이터 지원을 통해 코드 완성에 대한 엑세스를 유지할 수 있습니다. 하지만 키에 대한 코드 완성은 제공되지 않았습니다. 2020.1 버전에 추가된 키 코드 완성 기능을 확인해 보세요.

메타데이터 재정의 함수를 위한 여백 아이콘

메타데이터 재정의 함수를 위한 여백 아이콘

마지막으로, 이제 override(), exitPoint() 또는 expectArguments() 지시문이 포함된 .phpstorm.meta.php 파일에 의해 수정된 동작이 에디터에 표시됩니다. 또한 프로젝트에는 이러한 메타파일이 여러개 있을수 있기때문에, 아이콘을 클릭하여 특정 위치에 사용된 메타파일을 열 수 있습니다.

HTTP 클라이언트

HTTP 클라이언트에서 PHP 디버그

HTTP 클라이언트에서 PHP 디버그

웹 애플리케이션 또는 API 엔드포인트를 개발할 때, PhpStorm 창을 떠나지 않고도 간편하게 디버그를 시작할 수 있습니다.

.http file 파일을 생성하거나 열고, 요청을 추가한 다음, Alt+Enter 인텐션을 사용해 PHP Debug를 실행합니다. 이제 요청에 XDEBUG_SESSION 쿠키가 추가되며 Xdebug 브라우저 확장 프로그램과 유사하게 작동합니다.

웹 기술

WebStorm 2020.1모든 새로운 기능 및 개선 사항은 PhpStorm 2020.1에서 별도 설정 없이 바로 사용하거나 Plugin Marketplace에서 제공되는 무료 플러그인을 통해 사용할 수 있습니다.

JavaScript 및 TypeScript를 위한 새로운 스마트 인텐션 및 검사

JavaScript 및 TypeScript를 위한 새로운 스마트 인텐션 및 검사

새로운 스마트 인텐션 및 검사 기능(Alt+Enter)을 통해 코딩 시간을 단축하세요! 예를 들어, 기존 코드를 JavaScript 및 TypeScript 최신 버전에 도입된 구문인 optional chaining/nullish coalescing으로 빠르게 변환할 수 있습니다.

Vue.js 전용 Vuex 및 Composition API 지원

Vue.js 전용 Vuex 및 Composition API 지원

곧 출시될 Vue 3는 별도 설정 없이 바로 사용 가능한 Vuex 라이브러리, Composition API에 대한 지원을 제공하므로 우수한 Vue.js 애플리케이션을 한층 원활하게 작성할 수 있습니다.

저장 시 Prettier 실행

저장 시 Prettier 실행

WebStorm에 새롭게 추가된 Run on save for files(파일 저장 시 실행) 옵션을 활용하면 파일을 저장하는 즉시 IDE 설정에서 지정되고 프로젝트에서 편집된 모든 파일에 Prettier 형식이 적용됩니다. 이제 파일 감시기 또는 타사 플러그인이 필요하지 않습니다.

IDE

스마트한 문법 및 철자 검사기

스마트한 문법 및 철자 검사기

이제 별도의 설치 없이 고급 교정 및 문법 검사 플러그인인 Grazie을 사용하세요. 오타 및 실수가 즉시 강조 표시되며 빠른 수정 액션을 통해 코드의 기타 오류와 오타를 수정할 수 있습니다.

철자 검사 기능은 Markdown 파일에서 기본적으로 지원됩니다. PHPDoc 주석, HEREDOC/NOWDOC 문자열 또는 PHP 파일의 문자열 리터럴을 검사하려면 Preferences/Settings(환경 설정/설정) | Editor(에디터) | Proofreading(교정) | Grammar(문법)에서 검사 기능을 활성화하세요.

Preferences/Settings(환경 설정/설정) | Editor(에디터) | Inspections(검사) -> Proofreading(교정)Grammar(문법) 검사를 활성화하면 보다 심화된 문법 검사도 가능합니다.

PhpStorm를 활용한 빠른 편집

PhpStorm를 활용한 빠른 편집

새로운 LightEdit 모드를 통해 PhpStorm을 메모장 스타일의 가벼운 에디터로 활용하세요. IDE 전체를 열지 않고도 파일을 빠르게 수정할 수 있습니다.

이 기능을 활성화하려면 명령줄에서 파일을 열거나(자세한 내용은 Working with IDE features from command line (명령줄에서 IDE 기능 활용)을 참조하세요) 운영 체제 파일 관리자에서 파일을 열면 됩니다. PhpStorm이 실행되지 않은 상태에서는 LightEdit 모드로 파일이 열립니다.

날짜 형식 사용자 지정

터미널 세션의 수직/수평 분할

이제 여러 개의 터미널 세션을 한 번에 열고 탭 전환 없이도 모든 세션의 출력 결과를 동시에 확인할 수 있습니다.

분할된 터미널 세션을 생성, 탐색 및 종료하려면 터미널의 컨텍스트 메뉴를 실행하세요.

통합된 SSH 구성

통합된 SSH 구성

모든 SSH 연결이 통합되어 Preferences/Settings(환경 설정/설정) | Tools(도구) | SSH Configurations(SSH 구성)에서 제공됩니다.

이제 한곳에서 연결을 생성하고 IDE 내부 어디서든 해당 연결을 사용할 수 있습니다(예: 배포 설정, SSH를 활용한 원격 PHP 인터프리터 또는 SSH 터미널).

모양

light 테마 업데이트

light 테마 업데이트

모든 운영 체제의 Light 테마가 통합되어 IntelliJ Light라는 새로운 이름으로 탄생했습니다. 기존 테마로 변경하려면 Preferences/Settings(환경 설정/설정) | Appearance & Behavior(모양 및 동작) | Appearance(모양) | Theme(테마)에서 설정하세요.

날짜 형식 사용자 지정

새 기본 글꼴

개발자를 위해 특별히 제작된 프리-오픈 소스 서체인 JetBrains Mono를 사용하면 코드를 한결 쉽게 읽을 수 있습니다. 또한, JetBrains Mono는 에디터 기본 글꼴로 제공됩니다.

코딩에만 집중하는 환경

코딩에만 집중하는 환경

집중력 분산 방지 모드와 전체 화면 모드가 결합된 Zen 모드를 새롭게 선보입니다. 이제 코딩에만 집중하세요.

Zen 모드View(뷰) | Appearance(모양) | Enter Zen Mode(Zen 모드 실행)에서 설정할 수 있습니다.

버전 관리

Git 리베이스 대화상자 개편

Git 리베이스 대화상자 개편

Interactively Rebase from Here 대화상자가 보다 인터랙티브하게 개편되어 리베이스 작업의 모든 측면을 제어할 수 있습니다.

  • 브랜치의 각 커밋에 수행하고자 하는 액션 선택.
  • 적용된 액션을 표시하는 그래프 확인.
  • 커밋 세부 사항 확인.
  • Diff 및 검토 확인. 필요한 경우 변경 사항 재설정.
모든 브랜치의 변경 내용 푸시

커밋 작업 흐름 변경

보다 간결한 커밋 작업 흐름을 위해 커밋과 관련된 모든 작업을 처리하는 새로운 커밋 도구 창을 개발했습니다. 이 기능은 모든 신규 사용자에게 기본으로 제공됩니다.

기존 사용자의 경우 이 기능을 사용하고 싶으시다면 Preferences/Settings(환경 설정/설정) | Version Control(버전관리) | Commit(커밋)에서 Use non-modal commit interface(non-modal 커밋 인터페이스 사용)를 선택하세요.

데이터베이스 도구

DataGrip 팀이 PhpStorm 데이터베이스 도구에 멋진 기능을 추가했습니다. DataGrip 2020.1의 새로운 기능을 확인해 보세요.

Excel로 내보내기

Excel로 내보내기

쿼리 결과 혹은 테이블을 Excel 파일로 내보내는 기능이 추가되었습니다.

에디터 내 결과 표시

에디터 내 결과 표시

이제 코드 에디터에서 결과를 확인할 수 있습니다. 이 기능을 사용하려면 Preferences/Settings(환경 설정/설정) | Database(데이터베이스) | General(일반) | Show output results in the editor(에디터에서 출력 결과 표시) 옵션을 선택하세요.

실행 구성

실행 구성

PhpStorm 사용자라면 실행 구성의 개념이 상당히 익숙하게 느껴지실 겁니다. PHP 스크립트, 테스트 혹은 HTTP 요청 외에도 이제 DB 쿼리 실행까지 지원됩니다.

기타 개선 사항:

  • @deprecated로 표시된 모든 멤버와 항목은 구조 트리 뷰에서 취소선표시됩니다.
  • 이제 괄호 닫기 혹은 열기를 빠르게 실행하는 새 액션이 추가되었습니다.
  • Twig 렉서 구문의 사용자 지정이 지원됩니다.
  • 구성 파일 경로가 변경되었습니다. – 자세한 내용을 확인해주세요.
  • .idea 폴더 외부에서 실행 구성을 저장하고 버전 관리를 통해 공유할 수 있습니다. Run/Debug Configurations(실행/디버그 구성) 대화상자를 열어 Store as project file(프로젝트 파로 저장) 옵션을 선택하세요.