PhpStorm 2019.3의 새로운 기능

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

PHP 7.4 지원

PHP 7.4가 출시되어 이 버전의 새로운 기능을 PhpStorm 2019.3에서 모두 완벽하게 지원합니다. 또한 코드 베이스를 업그레이드할 수 있도록 사용되지 않는 항목을 강조 표시하는 검사와 빠른 수정을 제공합니다.

타입 지정된 속성

유형 지정된 프로퍼티

유형 지정된 프로퍼티는 2019.2 릴리스부터 지원되기 시작했습니다. 2019.3에서는 빠른 수정 기능으로 모든 코너 케이스를 처리할 수 있으며 Alt-Enter를 누르고 Add declared type for the field(필드에 선언된 타입 추가)를 선택하면 타입 선언을 빠르고 쉽게 추가할 수 있습니다. PhpStorm은 PHPDoc, 기본값 또는 생성자 내 인수 타입 선언에 따라 타입을 자동으로 탐지합니다.

애로우 함수 (Arrow Functions)

애로우 함수 (Arrow Functions)

PhpStorm은 PHP 7.4에서 한 줄 람다 함수에 대한 새로운 짧은 구문을 완벽하게 지원합니다. IDE는 외부 범위의 변수에서 코드 완성 기능을 제공하며 한 번의 클릭으로 선언으로 이동할 수 있습니다.

한 줄 람다 함수를 이전 구문에서 새로운 짧은 구문으로 변환을 위한 빠른 수정도 제공됩니다. 간단히 익명 함수 위에서 Alt-Enter를 누르고 Convert closure to arrow function(클로저를 애로우 함수로 변환)을 선택하세요.

숫자 리터럴 구분 기호

숫자 리터럴 구분 기호

PHP 7.4에서는 긴 숫자에 밑줄 구분 기호를 추가할 수 있어 시각적 서식 지정으로 코드의 가독성을 개선합니다.

숫자가 길면 그 위에 캐럿을 놓고 Alt + Enter를 누른 다음, Add number separators(숫자 구분 기호 추가)를 선택하세요. 이렇게 하면 10진수의 세 번째 숫자마다, 또는 2진수, 8진수, 16진수의 네 번째 숫자마다 '_' 밑줄이 추가됩니다.

중첩된 Ternary 연산자

중첩된 Ternary 연산자

PHP 7.4는 중첩된 ? : 연산자에서 왼쪽 연관을 더 이상 사용하지 않습니다. 즉, 중첩된 ternaries 연산자를 사용하지 말아야 하며, 필요한 경우 괄호를 사용하여 계산 순서를 명시적으로 선언해야 합니다.

PhpStorm 2019.3에서는 더 이상 사용되지 않는 표현식을 강조 표시하고 동작을 명시하는 빠른 수정을 제공합니다.

중단된 기능

중단된 기능

이번 PHP 릴리스에서는 새로운 기능이 추가되기도 했지만 이전 기능도 다수 중단되었습니다.

PhpStorm 2019.3에는 중단된 기능에 관한 검사가 마련되어 주의가 필요한 코드를 강조 표시합니다. 가능한 경우 더 이상 사용되지 않는 동작을 자동으로 빠르게 수정하는 옵션도 제공됩니다.

공변성 리턴 및 반공변성 매개변수

공변성 리턴 및 반공변성 매개변수

PHP 7.4는 유형 시스템에 영향을 주는 불일치를 포함해 여러 불일치를 수정합니다. 부모 클래스에서 상속된 메서드로 작업할 때 반환 유형을 더 구체적으로, 매개변수 유형은 덜 구체적으로 정의할 수 있습니다.

PSR-12

새로운 PSR-12 코드 스타일 표준에서는 일부 새로운 PHP 기능에 대한 추가 규칙 및 새로운 지침을 제공하여 이전 PSR-2를 확장합니다. PhpStorm 2019.3은 사전 정의된 PSR-12 코드 스타일을 포함하며 사용자에게 이 스타일로 전환할 것을 제안합니다. Preferences(환경 설정) | Editor(에디터) | Code Style(코드 스타일) | PHP에 있는 Set from…(다음에서 설정) 액션으로 직접 전환할 수도 있습니다.

또한 PhpStorm은 특정 규칙 위반을 검사하는 일련의 PSR-12 코드 스타일 검사를 활성화할 것을 제안합니다.

사용자는 Cmd+Alt+L을 눌러 에디터에서 코드를 다시 서식 지정하거나 커밋하기 전에 검사를 실행할 수 있습니다. Code(코드) > Code Cleanup...(코드 정리)을 사용하여 전체 프로젝트 또는 폴더의 서식을 다시 지정할 수도 있습니다.

WSL

WSL 추가 인터프리터

Linux용 Windows 하위 시스템은 기본적으로 Windows 10에서 Linux 이진 실행 파일을 실행하기 위한 호환성 레이어입니다. PhpStorm은 이제 WSL 환경에서 개발을 지원합니다. WSL 환경은 Windows 시스템에서 IDE를 시작하지만 WSL/Linux를 대상으로 개발하는 경우입니다. WSL에서 원격 PHP 인터프리터를 지정하고 이를 사용해 스크립트, 테스트, Composer 명령어를 실행하고 디버그할 수 있습니다.

PHP 테스트 실행 구성을 위한 인터프리터 지정

PHP 테스트 실행 구성을 위한 인터프리터 지정

예전에는 테스트 실행 구성을 기본 프로젝트 PHP 인터프리터를 통해서만 실행할 수 있어서 불편한 면이 있었습니다.

이제 그 제한이 사라져 PhpStorm 2019.3에서는 구성한 인터프리터를 선택하고 테스트를 실행할 수 있습니다. Docker, Vagrant, SSH, WSL 등 어떤 인터프리터든 사용할 수 있습니다.

기타 개선 사항

PHPDoc 개선 사항

PHPDoc 개선 사항

기존 PhpStorm에서는 전체 PHPDoc 블록이 하나의 색상으로 표시되고 일반 주석과 똑같이 스타일이 지정되었습니다.

이제 doc 블록에서 모든 타입, 변수, 매개변수, 메서드, 프로퍼티가 모두 강조 표시됩니다. 주석에 HTML이 있는 경우 HTML도 강조 표시됩니다.

$this 변수의 글꼴과 색상

$this 변수의 글꼴과 색상

$this가 사용된 위치의 글꼴 및 색상을 선택할 수 있습니다. Preferences(환경 설정) | Editor(에디터) | Color Scheme(색 구성표) | PHP | Identifiers(식별자)로 이동해 원하는 방식으로 사용자 지정하세요.

Markdown 및 문자열에서의 PHP 강조 표시

Markdown 및 문자열에서의 PHP 강조 표시

PhpStorm 2019.3에서 'php'를 정보 문자열로 사용하면 Markdown 파일의 PHP 코드 블록이 자동으로 강조 표시됩니다. PHP와 비슷하지만 시작 태그가 필요 없는 InjectablePHP라는 특별한 PHP 파생 언어 덕분에 다른 문자열에 대해 PHP를 강조 표시할 수도 있습니다.

if-else용 컨텍스트 액션
Extract assignment(값 대입 추출)

Extract assignment(값 대입 추출)

Merge nested conditions(중첩된 조건 병합)

Merge nested conditions(중첩된 조건 병합)

Merge else followed by if(if가 뒤에 오는 else 병합)

Merge else followed by if(if가 뒤에 오는 else 병합)

HTTP 클라이언트

프로처럼 요청 하기 위해 PhpStorm에서의 HTTP 클라이언트 사용에 대한 짧은 비디오 튜토리얼을 확인해 보세요.

에디터 도구 모음

에디터 도구 모음

.http 파일을 열 때마다 모든 공통 액션에 빠르게 액세스할 수 있는 도구 모음이 제공됩니다.

  • Add request(요청 추가) – 템플릿에서 요청을 생성합니다.
  • Convert from cURL(cURL에서 변환) – 에디터에서 cURL을 붙여넣어 요청을 생성합니다.
  • Open Log(로그 열기) – 전송된 요청 목록을 보고 응답을 열고 비교합니다.
  • Examples (예시) – 편리한 HTTP 요청 모음을 탐색합니다.
동적 변수

동적 변수

요청에서 사용할 수 있는 세 가지 동적 변수가 추가되었습니다.

  • $uuid – 새로운 UUID-v4 생성
  • $timestamp – 현재 Unix 타임스탬프
  • $randomInt – 0과 1000 사이의 임의의 정수

이중 중괄호를 사용하여 필요한 곳에 이러한 변수를 삽입하세요.

모두 실행

모두 실행

하나의 .http 파일에서 여러 요청을 작성할 수 있습니다. 이 기능은 이전 요청의 결과에 따라 요청이 달라지는 요청 체인을 수행해야 하는 경우 매우 편리합니다.

예전에는 요청을 하나씩 실행해야 했지만 PhpStorm 2019.3부터는 한 번의 클릭으로 모든 요청을 실행할 수 있습니다.

요청 접기

요청 접기

멀티파트 양식 데이터 또는 여러 개의 헤더 등 본문이 긴 요청을 전송하는 경우, 에디터에서 요청을 접어 깔끔하게 표시할 수 있습니다.

여백에서 화살표 아이콘을 클릭하면 첫 번째 줄 또는 본문만 남기고 전체 요청을 접을 수 있습니다.

웹 기술

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

Vue.js 지원 강화

Vue.js 지원 강화

새로운 Propagate to destructuring(구조 분해로 전달) 인텐션(Alt+Enter)을 사용하면, 추가 변수를 또 다른 구조 분해로 대체할 수 있습니다. 구조 분해를 완전히 제거하려면 Replace destructuring with property or index access라는 인텐션 액션을 사용하세요.

이제 조건문의 bool 표현식에 불필요한 부분이 있을 경우 IDE가 경고하고 간소화하도록 제안합니다.

CDN상의 CSS 라이브러리에 코드 완성 지원

CDN상의 CSS 라이브러리에 코드 완성 지원

JavaScript 또는 TypeScript 파일에서 심볼의 이름을 변경할 때 IDE가 동적인 사용 위치를 하나로 그룹 지정하고, 기본적으로 리팩터링에서 제외합니다. 이를 통해 리팩터링이 더 정확해져서 Refactoring Preview(리팩터링 미리보기) 도구 창에서 정확하게 어떤 항목의 이름이 변경되어야 하는지 더 효과적으로 제어할 수 있습니다.

새 심볼의 이름 제안

새 심볼의 이름 제안

Vue.js 애플리케이션에서 Vuetify나 BootstrapVue를 사용하시나요? 이제 이러한 라이브러리 및 기타 Vue 구성 요소 라이브러리의 구성 요소와 속성에 대한 코드 완성이 더 정확해졌습니다. 이는 IDE에서 이 라이브러리로 작업할 수 있도록 새로 적용한 접근 방식을 통해 구현되었습니다.

버전 관리

VCS 및 GitHub에서 프로젝트를 복제하기 위한 새로운 UI

VCS 및 GitHub에서 프로젝트를 복제하기 위한 새로운 UI

IDE 시작 화면 또는 VCS 메뉴에서 버전 관리 시스템의 프로젝트를 복제하면 업데이트된 Get from Version Control(버전 관리에서 가져오기) 대화상자가 표시됩니다.

이 대화상자는 GitHub 계정에서 프로젝트를 가져오는 경험을 개선하기 위해 새롭게 설계되었습니다. 이제 대화상자의 왼쪽에 있는 GitHub를 선택하고 거기에서 계정에 로그인할 수 있습니다.

모든 브랜치의 변경 내용 푸시

모든 브랜치의 변경 내용 푸시

이제 Branches(브랜치) 팝업에서 바로 모든 브랜치의 변경 내용을 푸시할 수 있습니다. 브랜치를 선택한 다음, 메뉴에서 Push(푸시) 액션을 사용하세요.

이전에는 현재 작업 중인 브랜치에서만 변경 내용을 푸시할 수 있었기 때문에 푸시를 수행하려면 먼저 브랜치로 전환해야 했습니다.

날짜 형식 사용자 지정

날짜 형식 사용자 지정

사용자가 미국인인 경우, 버전 기록 로그를 살펴볼 때 시간을 dd/mm/yyyy 또는 mm/dd/yyyy와 같은 상대적 형식으로 표시하면 정보를 이해하기가 더 쉽습니다.

PhpStorm 2019.3에서는 VCS Annotate 및 VCS Log 액션의 날짜 형식을 구성할 수 있습니다.

데이터베이스 도구

DataGrip팀의 동료들 덕분에 PhpStorm의 데이터베이스 도구가 멋지게 개선되었습니다. DataGrip 2019.3의 새로운 기능을 확인해 보세요.

MongoDB 지원

높은 기대를 모았던 MongoDB 지원이 PhpStorm을 포함한 JetBrains IDE에서 드디어 구현됩니다. 이 지원으로 데이터베이스 탐색기에서 컬렉션과 필드를 확인하고 트리 뷰로 데이터를 확인할 수 있으며, 열을 기준으로 정렬하거나 값을 필터링하고 마지막으로 IDE에서 바로 쿼리를 실행할 수 있습니다.

기타 개선 사항:

  • 빨라진 시작 – 이제 시작 화면이 표시되고 이미 색인 생성된 프로젝트가 열리기까지 오래 기다려야 하는 일이 거의 없어졌습니다.
  • 개선된 플러그인 관리 – 테마 플러그인을 추가/제거할 때 IDE를 다시 시작할 필요가 없습니다.
  • 플러그인을 통한 Kubernetes 지원 개선
  • 명암대비 스크롤 막대 – Preferences(환경 설정)/Settings(설정) | Appearance & Behavior(모양 및 동작) | Appearance(모양)로 이동해 "Use contrast scrollbars"(명암대비 스크롤바 사용) 활성화
  • Find(검색) 액션 사용시 선택한 범위에서 검색
  • 부드러운 마우스 스크롤 – Preferences | Appearance & Behavior | Appearance > Smooth scrolling(부드러운 스크롤)