PHP 8.0은 놀라운 새로운 기능이 많이 포함된 주요 언어 업데이트입니다. PhpStorm은 기존 코드가 호환되는지 확인하고, 코드베이스를 보다 신속하게 업데이트하고, 최신 언어 개선 사항을 활용할 수 있도록 도와줍니다.
이제 프로젝트에서 사용 중인 언어 버전을 항상 확인할 수 있습니다. 상태 표시줄에 해당 표시기를 배치했습니다. composer.json
에 PHP 버전에 대한 어떤 제한 사항도 없으면 여기에서 언어 버전을 변경할 수도 있습니다.
PHP 8의 함수 및 메서드 인수는 매개변수 이름을 지정하여 전달할 수 있습니다. 그러면 선택적 매개변수를 설정할 필요 없이 이제 호출이 자기 문서화됩니다.
PhpStorm은 다음을 지원합니다.
이 기능을 사용하면 생성자를 통해 변수를 초기화할 때 상용구 코드의 양을 줄일 수 있습니다.
PhpStorm에서 생성자 초기화 프로퍼티를 승격된 프로퍼티로 변환하거나 Convert to promoted property(승격된 프로퍼티로 변환) Alt + Enter 빠른 수정을 사용하여 다시 변경할 수 있습니다.
Null 검사와 함께 성가신 조건을 사용하는 대신 새로운 ?->
연산자를 사용하면 각 요소에 대해 null에 대한 묵시적 검사로 호출 체인을 빌드할 수 있습니다.
PhpStorm은 연산자가 올바르게 사용되고 있는지 확인합니다.
새로운 match
표현식은 switch
구문을 유형에 안전하고 간결하게 대체합니다. match
표현식을 값으로 사용하고 변수에 할당하거나 반환할 수 있습니다.
PhpStorm은 switch
블록이 match
표현식으로 변환될 수 있는지 여부를 결정하고, Alt+Enter 빠른 수정을 통해 이를 자동화할 수 있습니다.
새로운 표현식에서는 잘못된 사용을 알아채기 어려울 수 있습니다. PhpStorm이 이러한 부분을 자동으로 강조 표시합니다.
PHP 8에서는 str_contains()
함수를 사용하여 문자열이 다른 문자열의 일부인지 여부를 확인할 수 있습니다. PhpStorm 2020.3은 str_contains()
로 대체할 수 있는 strpos()
의 모든 사용 위치를 찾아서 알려줍니다.
PhpStorm은 또한 이전 substr()
호출을 새롭고 보다 명확한 str_starts_with()
및 str_ends_with()
함수로 대체할 수 있는 위치를 강조 표시합니다.
use
섹션에서 마지막 매개변수 뒤의 후행 쉼표. ??
및 ternary/elvis 연산자 ?:
에서 허용됨). get_class($object)
대신 $object::class
를 수행하면 됩니다. 이를 위해 Alt+Enter 빠른 수정을 사용하세요. PHP 8에서는 속성을 사용하여 PHPDoc 어노테이션에 의존하는 대신 구조화된 방식으로 메타데이터를 지정할 수 있습니다.
PhpStorm은 속성 작업을 위한 강조 표시, 코드 완성, 사용 위치 찾기, 리팩터링 및 기타 코딩 지원을 제공합니다. 또한 속성이 선언되고 유효하게 사용되는지 확인하는 검사 기능도 있습니다.
PhpStorm 2020.3에서는 IDE에서 바로 사용할 수 있는 여러 PHP 8 속성이 제공됩니다. We also provide them in a composer package jetbrains/phpstorm-attributes, so feel free to add it as a dependency in composer.json
.
@deprecated
PHPDoc 태그와 마찬가지로 이 속성을 사용하여 향후 소프트웨어 버전에서 제거될 메서드, 함수, 클래스 또는 클래스 상수를 표시할 수 있습니다.
reason
및 replacement
를 지정하면 사용자에게 업그레이드해야 하는 이유를 이해시키고 Alt+Enter 빠른 수정을 사용하여 자동으로 업그레이드시킬 수 있습니다.
객체와 유사한 배열의 키 및 값 유형을 정의하려면 이 속성을 사용하세요. 이렇게 하면 PhpStorm에서 얻는 코딩 지원과 분석이 향상됩니다.
참고: 한 줄로 작성하면 PHP 7.4 이전 버전에서도 작동합니다.
초기화 후 객체 변경 시도를 방지하려면 객체 또는 프로퍼티를 #[Immutable]
속성을 사용하여 표시하세요.
그러면 프로그램 상태를 예측하고 디버깅하기가 더 쉬워집니다.
속성 생성자에 전달되는 다음 상수 중 하나를 사용하여 프로퍼티의 쓰기 범위 제한을 조정하세요: CONSTRUCTOR_WRITE_SCOPE
, PRIVATE_WRITE_SCOPE
, PROTECTED_WRITE_SCOPE
.
참고: 한 줄로 작성하면 PHP 7.4 이전 버전에서도 작동합니다.
어떤 부작용도 없는 함수를 #[Pure]
로 표시하여 PhpStorm에서 코드 흐름 분석을 개선합니다. IDE는 순수 함수의 중복 호출을 강조 표시합니다.
함수를 #[Pure]
로 표시했지만 본문에서 외부 범위로부터 무언가를 변경하려는 시도가 있는 경우, PhpStorm은 안전하지 않은 코드를 강조 표시합니다.
이러한 모든 PHP 내부 함수(예: array_merge()
)는 이미 PhpStorm에 표시되어 있습니다.
이 속성을 사용하여 함수가 매개변수로 허용하는 값과 반환할 수 있는 값을 지정합니다. 그러면 코드 완성도가 향상되고, 있을 수 있는 버그를 탐지하는 데 도움이 됩니다.
#[ExpectedValues]
는 .phpstorm.meta.php
에 있는 expectedArguments()
의 고급 버전입니다.
스크립트 실행을 종료할 수 있는 함수를 #[NoReturn]
속성으로 표시하여 제어 흐름을 더욱 정확하게 분석할 수 있습니다.
PhpStorm은 보다 명확한 분석을 얻기 위해 빠른 수정을 통해 계층 구조 전체에 속성을 전파할지 제안합니다.
RegExp, SQL 등과 같은 다른 언어로 된 텍스트를 포함하는 문자열 매개변수에 이 속성을 추가하세요. 그러면 추가 PhpStorm 기능이 표시됩니다.
이 두 가지 정적 분석기는 PhpStorm 2020.3에서 에디터의 이슈를 강조 표시하기 위한 최상위 도구로 사용할 수 있습니다. 이러한 도구를 composer.json
에 dev-dependencies로 추가하고 도구 근처의 렌치 아이콘을 클릭하여 해당 검사를 활성화할 수 있습니다.
PhpStorm은 또한 @psalm-*
태그에 대한 코드 완성 기능을 제공하고 이를 특수하게 취급하므로 강조 표시된 이슈, 정의되지 않은 클래스 등이 생기지 않습니다. 대부분의 경우 이제 태그에서 @psalm-
접두사를 제거해도 안전합니다. 즉, @psalm-return
은 단순히 @return
일 수 있고 @psalm-param
은 @param
일 수 있습니다.
스칼라, 숫자 및 상수가 있는 유형을 포함하여 많은 psalm 유형이 지원됩니다. 결과적으로, 검사, 코드 생성 및 코드 완성과 같이 유형 추론에 의존하는 모든 내용(검사, 코드 생성 및 완성)이 더욱 정확해졌습니다.
Xdebug 3는 PHP 디버거를 새롭게 재작업한 것으로, 훨씬 빠르게 작동하고 설정하기 쉽습니다.
XDEBUG_MODE=debug
를 지정하는 것만으로 Xdebug 3 구성이 끝납니다.
Xdebug의 디폴트 디버깅 포트가 9000에서 9003으로 변경되었습니다. 간편한 마이그레이션을 위해 PhpStorm은 기본적으로 두 포트에 모두 수신 대기합니다. Xdebug의 포트 및 기타 설정은 Preferences(환경 설정)/Settings(설정) | Languages & Frameworks(언어 및 프레임워크) | PHP | Debug(디버그)에서 조정할 수 있습니다.
Learn more about Xdebug 3 in the Upgrade Guide.
PhpStorm 2020.3은 공동 개발 및 페어 프로그래밍을 위한 JetBrains의 새로운 서비스인 Code With Me를 지원합니다. Code With Me를 사용하면 IDE에 현재 열어 놓은 프로젝트를 다른 사람과 공유하고 실시간으로 함께 작업할 수 있습니다.
Code With Me에 관한 자세한 내용은 이 게시물을 확인해 주세요.
PhpStorm이 이제 Tailwind CSS를 더 생산적으로 작업할 수 있도록 도와줍니다.
IDE는 Tailwind 클래스를 자동 완성하고, 마우스오버 시 CSS 결과의 미리보기를 표시하고, tailwind.config.js
파일을 사용하여 만든 사용자 지정을 지원합니다.
Guzzle is one of the most popular HTTP clients for PHP. PhpStorm 2020.3에서는 실제 코드를 실행하지 않고도 Guzzle 요청을 테스트할 수 있습니다.
요청이 지원되는 경우, 옆에 여백 아이콘이 표시됩니다. 매개변수가 미리 채워진 새 HTTP
스크래치 파일을 만들려면 이 아이콘을 클릭해 주세요.
요청을 처리한 다음, 프로젝트에 .http
파일로 저장합니다.
HTTP 요청으로 cURL 문자열을 가져오려면 HTTP 요청 에디터에서 Alt + Enter를 누르고 Convert to cURL and copy to clipboard(cURL로 변환하고 클립보드에 복사)를 선택하세요.
터미널에서, 또는 선택한 HTTP 클라이언트와 함께 cURL 문자열을 사용할 수 있습니다.
이제 Mermaid.js diagrams 및 차트를 IDE 내에서 렌더링할 수 있습니다. Preferences(환경 설정)/Settings(설정) | Languages & Frameworks(언어 및 프레임워크) | Markdown에서 이 지원을 활성화하세요.
미리보기 창의 오른쪽 상단 모서리에 에디터와의 스크롤 동기화를 활성화 및 비활성화하는 Auto-Scroll Preview(미리보기 자동 스크롤) 버튼이 있습니다.
Ctrl+Alt+L을 사용하여 코드 서식을 다시 지정할 때 사용하는 인기 있는 Markdown 코드 스타일 사전 설정이 다양하게 추가되었습니다. 설정은 Preferences(환경 설정)/Settings(설정) | Editor(에디터) | Code Style(코드 스타일) | Markdown에서 지정할 수 있습니다.
문법 검사 엔진이 더 많은 언어를 지원하고 고품질 문법 검사 기능을 제공합니다.
실수가 강조 표시되면 설명과 제안된 수정 사항을 포함한 팝업이 표시됩니다.
강조 표시된 텍스트 위에 캐럿이 놓인 상태에서 Alt+Enter를 누르면 이전과 같이 중첩된 목록 대신 최상위 수준에서 제안된 모든 대체 항목이 표시됩니다.
탭을 화면의 원하는 쪽으로 끌어서 여러 탭을 나란히 열수 있습니다.
분할 모드에서 탭을 여는 또 다른 방법은, Project(프로젝트) 뷰 또는 검색 창의 선택한 파일에서 Shift+Enter를 누르는 것입니다.
실제로 파일을 열지 않고도 특수 탭에서 파일을 미리 볼 수 있습니다. 이 기능을 활성화하려면 Project(프로젝트) 뷰에서 톱니바퀴 아이콘을 클릭하고 Enable Preview Tab(미리보기 탭 활성화) 및 Open Files with Single Click(클릭 한 번으로 파일 열기)을 모두 선택하세요. 미리 보고 있는 파일의 편집을 시작하면 탭이 일반 파일이 됩니다.
Search Everywhere(전체 검색) 팝업(Shift+Shift)에서는 결과가 약간 다른 방식으로 표시됩니다. 유형별로 그룹화되는 대신 이제 검색 쿼리와의 연관성에 따라 그룹화됩니다.
이제 Search Everywhere(전체 검색)에서 간단한 수학 계산도 할 수 있습니다. 숫자와 수학 연산자를 입력하고 바로 계산 결과를 확인하세요. 그러면 계산기 앱으로 전환하느라 작업 흐름을 끊을 필요가 없습니다.
Search Everywhere(전체 검색)에서 브랜치 및 커밋에 대한 정보를 포함하여 Git 내역을 검색할 수도 있습니다.
WebStorm 2020.3의 모든 새로운 기능 및 개선 사항은 PhpStorm 2020.3에서도 바로 사용할 수 있거나 Plugin Marketplace에서 제공되는 무료 플러그인을 통해 사용할 수 있습니다.
TypeScript 언어 서비스를 Problems(문제) 도구 창에 통합하고 TypeScript 도구 창을 제거하여 한 곳에서 코드 문제를 보다 쉽게 검토할 수 있게 되었습니다. 이전에 TypeScript 도구 창에서 제공되던 액션은 상태 표시줄 상의 전용 위젯으로 옮겼습니다.
코드에 해결되지 않은 React 구성 요소가 있는 경우, 캐럿을 해당 위치에 놓고 Alt+Enter를 누른 다음, 목록에서 Create class/function component(클래스/함수 구성 요소 생성)를 선택하면 IDE가 적절한 코드 구문을 자동으로 생성해줍니다.
PhpStorm 2020.3에서는 Git 스테이징 영역이 지원됩니다. 이 기능을 사용하려면 Preferences(환경 설정)/Settings(설정) | Version Control(버전 관리) | Git에서 Enable staging area(스테이징 영역 활성화) 체크박스를 선택하세요.
Alt+0를 사용하여 Commit(커밋) 도구 창으로 돌아가서 스테이징된 파일과 스테이징되지 않은 파일을 확인할 수 있습니다.
파일 옆에 있는 + 아이콘을 클릭하면 파일을 스테이징합니다.
에디터의 변경 사항 옆에 있는 여백 아이콘을 사용하여 특정 라인을 스테이징할 수 있습니다.
DataGrip 2020.3의 새로운 기능을 살펴보세요. 이 모든 기능이 PhpStorm에도 제공됩니다.
이제 SQL을 사용하여 MongoDB 데이터베이스를 쿼리할 수 있습니다. PhpStorm 2020.3 supports SELECT
queries with clauses such as JOIN
, WHERE
, GROUP BY
, HAVING
, ORDER BY
, LIMIT
, OFFSET
, and all available MongoDB functions except map, reduce, filter, and let. MongoDB용 SQL에 관해 자세히 알아보려면 이 블로그 게시물을 읽어보세요.
이제 PhpStorm에서 Couchbase Query 서비스가 지원됩니다. 또한 열을 쉼표로 구분된 문자열로 복사할 수 있는 One-Row, 삽입될 여러 개의 새로운 줄이 포함된 단일 INSERT 문을 생성하는 SQL-Insert-Multirow
라는 두 가지 새로운 추출기가 도입되었습니다.