PhpStorm 2019.2의 새로운 기능

2019년도 두 번째 대규모 PhpStorm 업데이트를 통해 높은 생산성을 체험하세요.

PHP 7.4 유형 지정된 프로퍼티

11월 말에에 PHP 7.4의 릴리스가 예정되어 있습니다. PhpStorm은 이에 대한 지원을 조기에 시작하고 있으므로, 충분한 시간을 가지고 테스트 및 이전 계획을 수립할 수 있습니다. 가장 기대되는 기능은 아마도 새로 추가되는 유형 지정된 프로퍼티로 이 기능은 PhpStorm 2019.2에서 이미 완벽히 지원되고 있습니다. 새로운 검사에서 유형 위반 항목을 강조 표시하므로 사용자는 빠른 수정 Add declared type for the field(필드에 선언된 유형 추가)를 사용해 코드베이스를 업데이트할 수 있습니다. PhpStorm은 PHPDoc, 기본값 또는 생성자 내 인수 유형 선언에 따라 유형을 자동으로 탐지합니다.

실시간 중복 항목 검색

실시간 중복 항목 검색

프로젝트 안에 동일한 코드 블록이 여러 번 출현할 경우 변경하는 데 시간이 소모될 뿐만 아니라 모든 발생 항목을 업데이트하는 것을 잊어버릴 경우 회귀 버그가 발생할 수도 있습니다. PhpStorm은 중복 코드를 실시간으로 강조 표시함으로써 사용자는 이를 쉽게 발견하여 중복 코드가 생성되는 것방지할 수 있습니다. 이제 코드에서 기존의 중복 코드가 발견되거나 새로운 중복 코드가 생성될 경우 즉시 알 수 있습니다. 이 새로운 검사는 Duplicated code fragment(중복 코드 조각)라고 하며 기본적으로 활성화되어 있습니다. Preferences(환경 설정) | Editor(에디터) | Inspections(검사) | General(일반)에서 이 기능을 설정할 수 있습니다. Preferences | Editor | Duplicates(중복)에서 관련 설정을 조정할 수 있습니다. 물론 Code(코드) → Run Inspection by Name(이름별로 검사 실행)을 통해서 언제든 전체 프로젝트(또는 사용자 지정 범위)에 대해 실행할 수도 있습니다.

정규식 삽입

정규식 삽입

RegExps는 문자열 안에서 검색 및 대체를 수행할 때 매우 유용한 도구입니다. 이제 PhpStorm에서 PHP의 RegExps에 대한 자동 삽입이 수행됩니다. 즉, 사용자의 코드에서 preg_* 함수가 사용될 때마다 패턴이 강조 표시되고 정확성이 검증됩니다. 또한, 이제 IDE에서 바로 패턴을 테스트할 수 있습니다. 캐럿을 패턴 위로 이동하고 Alt+Enter를 누르면 빠른 액션 Check RegExp가 표시됩니다.

임의의 원격 PHP 인터프리터를 통한 Composer

임의의 원격 PHP 인터프리터를 통한 Composer 실행

이전에는 로컬 PHP 인터프리터가 있어야 Composer를 실행할 수 있었습니다. 이 때문에 로컬 환경이 종종 실제 프로덕션 환경을 반영하지 못하거나 로컬 PHP 인터프리터가 전혀 존재하지 않는 문제가 발생할 때가 있었습니다. PhpStorm 2019.2에서는 임의의 원격 인터프리터를 선택해 Composer를 실행할 수 있습니다. Docker, Vagrant 또는 SSH를 통하거나 그 외의 어떤 인터프리터를 사용해서도 이 작업이 가능합니다.

Preferences | Languages & Frameworks | PHP | Composer로 이동해서 Remote Interpreter를 선택한 후 드롭다운에서 인터프리터를 선택하거나 새로운 인터프리터를 추가하세요.

인텐션 및 빠른 수정

String Juggling Toolbox에서의 새로운 인텐션

String Juggling Toolbox에서의 새로운 인텐션

PhpStorm은 문자열을 조작할 수 있는 다양한 인텐션(Alt+Enter)을 제공합니다. 2019.2에서는 새로운 인텐션이 추가되었습니다.

sprintf 식에 새로운 매개변수를 삽입하고 싶은 경우 해당 표현식을 선택하고 Extract selected string part as formatted function argument(선택한 문자열 부분을 서식 지정된 함수 인수로서 추출) 인텐션을 실행하기만 하면 PhpStorm이 매개변수에 적합한 위치를 선택합니다. 이 기능은 연결 작업에도 사용할 수 있습니다.

한 줄 목록을 여러 줄로 변환(반대로도 가능)

한 줄 목록을 여러 줄로 변환(반대로도 가능)

PSR-2에 따라 80자보다 긴 줄은 각각 80자를 넘지 않는 여러 개의 줄으로 분할되어야 합니다. 따라서 매개변수 목록 또는 배열이 너무 길 경우, 이제 Alt+Enter를 눌러 새로운 인텐션 Split comma-separated values into multiple lines(쉼표로 구분된 값을 여러 줄로 분할)를 사용해 한 번 클릭해서 분할할 수 있습니다. 여러 개의 항목을 하나의 줄으로 결합하고 싶을 경우에도 반대 방향의 인텐션을 사용할 수 있습니다.

Switch 문에 대한 인텐션 및 검사

Switch 문에 대한 인텐션 및 검사

이제 기존의 브랜치를 복사한 후 수정함으로써 브랜치를 더 빠르게 추가할 수 있습니다. 본문이 없는 case 문에서 Alt+Enter를 누르고 Copy 'switch' branch(switch 브랜치 복사)를 선택하면 됩니다. switch 블록에 중복된 브랜치(예: 불필요하거나 잘못 작성된 동일한 본문)가 있을 경우 PhpStorm이 경고를 보내므로, 잊지 말고 복사된 항목을 수정하세요. 또한, PhpStorm 2019.2에서는 코드에 기본 브랜치가 없는 switch 문이 있을 경우에도 Alt+Enter를 사용해 이를 빠르게 수정할 수 있습니다.

PHPT 지원

PHPT 지원

.phpt 파일을 사용해 기능 테스트를 간단하게 작성할 수 있습니다. 이 형식은 PHP 코어를 테스트하는 데 사용됩니다. PhpStorm 2019.2에서는 섹션 및 스크립트에 대한 강조 표시, 해당하는 섹션에 PHP 및 INI 언어 자동 삽입, 섹션 이름 자동 완성, EXTERNAL 섹션에서 참조된 파일로 이동 등 .phpt 파일에 대한 다양한 지원이 제공됩니다.

Docker

서비스 도구 창

서비스 도구 창

Docker가 새로운 Services(서비스) 도구 창으로 이동되었습니다. 이 도구 창의 목적은 모든 연결과 실행 중인 프로세스를 한 곳에서 확인할 수 있게 하는 것입니다. 지금까지는 PhpStorm에 Docker와 데이터베이스 연결이 포함되어 있습니다.

Docker 컨테이너 파일 시스템 탐색

Docker 컨테이너 파일 시스템 탐색

이제 실행 중인 Docker 컨테이너의 파일 시스템을 확인할 수 있습니다. 파일 시스템은 새로 추가된 Files(파일) 탭에 표시됩니다.

HTTP 클라이언트

HTTP 클라이언트에서의 cURL 형식

HTTP 클라이언트에서의 cURL 형식

간단하게 브라우저 개발 도구, 설명서, 터미널 등에서 cURL 요청 문자열을 복사한 후, PhpStorm의 .http 파일에 붙여넣기만 하세요. 그러면, 완전한 요청으로 전환됩니다. 그런 다음, 스마트 완성의 기능을 활용해 요청을 처리하세요.

HTTP 클라이언트에 쿠키 보존

HTTP 클라이언트에 쿠키 보존

서비스에 대한 인증 요청을 한 번하고 다음 요청에서 추가 권한이 필요한 엔드포인트를 호출하려고 한다고 가정해 보겠습니다. 이전에는 첫 번째 응답에서 쿠키가 손실되었겠지만 더 이상 그렇지 않습니다. 이제 PhpStorm이 모든 쿠키를 보관하고 다음 요청에서 이 쿠키를 전송합니다.

웹 기술

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

JavaScript 및 TypeScript용 스마트 인텐션

JavaScript 및 TypeScript용 스마트 인텐션

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

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

JavaScript용 이름 변경 리팩터링 개선

JavaScript용 이름 변경 리팩터링 개선

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

향상된 Vue.js 지원

향상된 Vue.js 지원

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

20개 이상의 언어에 대한 구문 강조 표시

20개 이상의 언어에 대한 구문 강조 표시

PhpStorm 2019.2는 별도로 설정하지 않아도 Ruby, Python, Go를 비롯한 20개 이상의 프로그래밍 언어에 구문 강조 표시를 제공합니다. 강조 표시 기능은 통합된 TextMate 번들을 기반으로 하므로 추가 언어가 필요할 경우 해당 언어의 번들을 다운로드해서 IDE로 가져오시기 바랍니다.

EditorConfig

EditorConfig

PhpStorm이 이제 별도로 설정하지 않아도 .editorconfig 파일을 지원합니다. 이 파일은 원하는 수만큼 보유할 수 있습니다. 임의의 폴더에서 생성하면 지정된 코드 스타일 설정이 해당 폴더의 파일에만 적용됩니다.

EditorConfig 표준의 모든 표준 프로퍼티에 더하여 이제 PhpStorm 고유의 코드 스타일 옵션을 지정할 수도 있습니다. 팀 전체에 공통적인 코드 스타일 표준을 정의하는 것이 그 어느 때보다도 쉬워졌습니다.

셸 스크립트

셸 스크립트 지원

이 릴리스에서는 단어 및 경로 완성, 빠른 문서, Rename(이름 변경) 리팩터링 등 셸 스크립트에 대한 풍부한 편집 지원 기능을 제공합니다. 또한, 셸 스크립트를 실행하기 위한 실행 구성을 생성할 수도 있습니다.

더욱 향상된 셸 스크립트 지원을 위해 몇 가지 외부 도구가 PhpStorm과 통합되었습니다. 이제 Shellcheck를 사용해 스크립트 안의 오류를 발견 및 수정하고, mvdan/sh를 사용해 셸 스크립트의 서식을 올바로 지정하며, Explainshell에서 Alt+Enter를 눌러 명령어에 대한 완벽한 설명을 얻을 수 있습니다.

버전 관리

별도 설정 없이 파일 무시 처리

이제 Project Tree(프로젝트 트리) 또는 VCS 도구 창의 Local Changes(로컬 변경) 탭에서 무시된 파일의 목록에 파일을 추가할 수 있습니다. .gitignore를 편집하고 싶으면 에디터에서 경로 완성을 사용하면 됩니다.

대화상자 없는 새로운 커밋 워크플로

대화상자 없는 새로운 커밋 워크플로

PhpStorm 2019.2에서는 Git 또는 Mercurial을 사용하는 프로젝트에 큰 변화가 도입되었습니다. 이제 버전 관리 도구 창의 Local Changes(로컬 변경) 탭에서 파일을 커밋할 수 있습니다. 커밋 대화상자가 나머지 IDE 화면을 가로막지 않기 때문에 수정된 파일을 검토하고 필요한 경우 변경 작업을 수행할 수 있습니다. 사용하려면 Preferences(환경 설정) | Version Control(버전 관리) | Commit Dialog(커밋 대화상자)에서 'Commit from the Local Changes without showing a dialog'(대화상자를 표시하지 않고 로컬 변경에서 커밋) 체크박스를 선택하세요.

잊은 파일에 대한 알림

잊은 파일에 대한 알림

파일을 커밋할 때 사용자가 현재 커밋되는 파일과 함께 자주 커밋하는 다른 변경된 파일이 있을 경우 PhpStorm 2019.2는 이를 탐지하고, IDE는 빠뜨린 것이 없도록 사용자에게 경고를 보냅니다.

VCS 로그 탭 사용자 지정

VCS 로그 탭 사용자 지정

이제 버전 관리 도구 창의 로그 탭에서 보고 싶은 열을 선택할 수 있습니다. 눈 모양 아이콘을 클릭하고 'Show Columns'(열 표시)를 선택한 다음, 표시할 열(작성자, 날짜 또는 커밋 해시)을 선택하세요.

데이터베이스 도구

전체 텍스트 검색에서 포괄적 결과 제공

전체 텍스트 검색에서 포괄적 결과 제공

이제 데이터의 정확한 위치를 모르더라도 필요한 데이터를 검색할 수 있습니다. 검색할 데이터 소스 또는 데이터 소스 그룹을 마우스 오른쪽 버튼으로 클릭하고 Full-text Search(전체 텍스트 검색)를 선택하거나 Cmd+Alt+Shift+F를 누르세요.

결과가 필터링되어 해당 데이터가 있는 문자열만 표시됩니다. 열 수가 너무 많아 데이터를 찾을 수 없을 경우 데이터 에디터에서 텍스트 검색(Cmd+F)을 사용해 보세요.

검색 및 탐색에서 데이터 소스별 필터링 사용 가능

검색 및 탐색에서 데이터 소스별 필터링 사용 가능

비슷한 항목이 너무 많을 경우에는 GoTo 팝업에서 객체를 찾는 일이 쉽지 않습니다. PhpStorm 2019.2에서는 특정 데이터 소스 또는 소스 그룹 중에서 검색할 위치를 선택할 수 있습니다. Find In Path(경로 검색)에서도 마찬가지입니다. 이 기능은 다른 객체의 DDL 안에 있는 소스 코드를 찾을 때 매우 유용합니다.