이 repo에는 정적 분석 도구와 함께 사용할 수있는 자동 생성 된 워드 프레스 스터브가 포함되어 있습니다.
이 프로젝트의 목적은 다음과 같습니다.
fixtures.php 파일에서 스터브를 선언하면 기능, 클래스 및 인터페이스에 대한 WordPress 선언을 무시할 수 있습니다. 이렇게하면 WordPress에서 잘못된 문서 블록을 수정하고 정적 분석기가 지원하는 "고급"DOC 블록을 사용하는 것이 쉽습니다 (배열 모양, 유형 별명, 조건부 반환 유형을 생각해보십시오…)매일 GitHub Actions 워크 플로우는 WP.org API를 호출하여 새로운 WordPress 버전을 찾습니다.
새로운 버전을 찾으면 "최신"스텁을 업데이트하면서도 스터브를 생성하고 저장합니다 (https://github.com/php-stubs/generator).
기본 사용량은 정적 분석 도구 (예 : Psalm)에 대한 것입니다.
"require-dev" 속성 에이 프로젝트 ( inpsyde/wp-stubs )가 필요합니다.psalm.xml config 파일 만들기 (문서 참조)< stubs >
< file name = " vendor/inpsyde/wp-stubs/stubs/latest.php " />
</ stubs > latest.php 특정 WP 버전으로 바꿀 수 있습니다. /stubs 디렉토리의 사용 가능한 버전을 참조하십시오.
참고 : 해당 폴더에서 5.9 와 같은 2 자리 버전 번호는 반드시 WordPress 버전 5.9 의미하는 것은 아니라 5.9.* 시리즈의 최신입니다 . 따라서 작곡가를 사용하여 WordPress를 요구하고 5.9.* 와 같은 요구 사항이있는 경우 stubs/5.9.php Stubs 파일을 사용하여 현재 설치된 버전과 일치합니다.
"Stubs"폴더에는 여러 버전의 스터브가 포함되어있어 선택할 수 있지만 다른 스터브에 대해 테스트하기 위해 다른 버전을로드하는 CI 스크립트가있을 수도 있습니다.
그러나 패키지 크기가 크게 증가 할 수 있으며 IDE 분석에서 제외되지 않으면 IDE 성능에 영향을 줄 수 있습니다.
composer.json 에서 다음과 같은 저장소를 선언하십시오.
{
"repositories" : [
{
"type" : " composer " ,
"url" : " https://raw.githubusercontent.com/inpsyde/wp-stubs/main " ,
"only" : [
" inpsyde/wp-stubs-versions "
]
}
]
}Inpsyde 개발자에 대한 참고 : 개인 Packagist의 Inpsyde 조직은 위의 저장소를 반영하므로 Inpsyde의 개인 리포지토리의 경우 개인 Packagist가 이미 Repo의
composer.json에 추가 될 것이라는 점을 고려할 필요는 없습니다.
"require-dev" { "require": { "inpsyde/wp-stubs-versions": "dev-latest" } } 가 필요합니다. (패키지 이름에 -versions 추가 된 방법에 유의하십시오)psalm.xml config 파일 만들기 (문서 참조)< stubs >
< file name = " vendor/inpsyde/wp-stubs-versions/latest.php " />
</ stubs >이 접근법을 사용하면 최신 버전이 유일한 버전 작곡가 다운로드입니다.
스터브를 생성하는 코드에는 PHP 8.0+가 필요합니다. 그러나 패키지를 소비 할 때는 WordPress를 실행할 수있는 것 외에 최소 요구 사항이 없습니다.
이 저장소는 무료 소프트웨어이며 MIT 라이센스의 조건에 따라 릴리스됩니다. 완전한 라이센스는 라이센스를 참조하십시오.