PHPStan 좋네요 > 자유게시판

자유게시판

PHPStan 좋네요 정보

PHPStan 좋네요

본문

플러그인 같은거 만들때는 유닛테스트 같은걸 만들기는 왕배꼽이고
그래도 무언가는 있어야 할때 좋은 수단인 것같습니다.

 

PHP 7.4에서는 (약간의 아쉬움은 있지만) 타입 정의가 수월한 편이라서 도움은 되지만
객체(특히 stdClass)의 프로퍼티나 배열의 키까지는 정의할 수가 없는데 이런 정적 분석도구와 PHPDoc 주석으로
에디터에서 자동완성 효율성도 올라가네요.


/**
 * @return array{
 *     credentialId: string,
 *     signatureCounter: int,
 *     credentialPublicKey: string
 * }
 */
function foo(): array {}

 

이런 PHPDoc 으로 `foo()['cre...']` 이런 코드의 자동 완성도 잘 해주고요.

 

유닛테스트도 많은 부분이 함수가 반환하는 값의 타입이나 특정 속성/키가 존재하는지 검사하는데 많은 부분을 할애하는데
테스트 코드를 작성하지 않아도 타입 정의를 유도하고 검사와 에디터 자동완성 효율까지 올려주는 역할까지 해줘서
코드 작성의 편의와 오류를 방지해주는 도구로써 좋은 것같습니다.
물론 유닛테스트의 대체 수단은 아니고요.

 

귀찮아서 대충 작성했던 코드들이 조금 더 탄탄해지네요.

추천
4

댓글 3개

PHP 스탄 좋아요 블러딩엣지 옵션을 켜면 9.0 에 사라질것들 까지 잡아줘요 9.0 은 파이썬 마냥 변수 할당 안하고는 못쓰게 해놔가지고..

 

@extract 이런건 논외겠지만요 이거 쓴거는 런타임에 일어나는거라 그런지

php 스탄도 영... 못잡는거 같아요

 다 잡아줄 수가 없겠죠.

 

그누보드에서 돌려봤는데 답이 없어서 그누보드에서는 활용하기 어렵겠지만 그래도 돌려보면 레벨 6에서 1만개 가까이 나오네요.
대다수가 전역변수 사용 때문에 발생하는 문제죠.

 


parameters:
    level: 6
    phpVersion: 70100
    paths:
        - .
    excludePaths:
        - data
        - lib/Excel
        - lib/PHPExcel
        - mobile
        - plugin
        - skin
        - theme
    bootstrapFiles:
        - common.php

 

 

? 그누 5는 PHP IDE 만 켜도 빨간줄 많아서 좀 그렇긴해요

전역변수때문에 오류로 잡는게 아니라 extract 때문에 정적분석기가 판단 할때는 선언 안되었다고 해서 잡는거라서요.

전체 195,335 |RSS
자유게시판 내용 검색

회원로그인

진행중 포인트경매

  1. 참여4 회 시작24.04.25 20:23 종료24.05.02 20:23
(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT