2
.phpstorm.meta.php 파일을 공장 방법으로 설정하려고했지만 완전히 작동하지 않습니다. 인수가 1 개만있는 팩토리 메소드에서 작동하지만 인수가 2 개 이상이면 작동하지 않습니다.PhpStorm 메타 및 여러 팩토리 인수
기본적으로 1 개 이상의 인수를 사용하는 모든 팩토리 메소드, 특히 스 플랫 (splat) 인수, 즉 factory(string $className, ...$ctorArgs)
이 영향을받습니다.
다음은 내 메타 파일의 예입니다.
<?php
namespace PHPSTORM_META {
override(
\ContainerInterface::make(0),
map([
'' => '@',
])
);
}
이것은 서명입니다.
<?php
interface ContainerInterface{
/* @return mixed */
public function make (string $className, ...$ctorArgs);
}
다음은 예상 결과의 예입니다.
<?php
$container->make(MyClass::class, "hello", "world")-> // Nothing is indicated here, should indicate MyClass props/methods
여기에 뭔가 잘못입니까?
분명히 17.2 이후 그들은 공장 방법을 단 하나의 인수로 제한하기로 결정했습니다. 이전 버전과 이전 구문에서는이 제한이 없었습니다. https://youtrack.jetbrains.com/issue/WI-38403 – Daniel
최소한의 수업을 포함하는 간단한 프로젝트를 만들고 공유해주십시오. Laravel :'\ App :: make()','$ this-> app-> make()','app()'-'log' 서비스를 테스트 한 것들 - (PhpStorm 2017.2.4) – LazyOne
참고 : Laravel의 함수 선언은 가변 매개 변수 '... $ param'이 아닌 선택적 매개 변수 (기본값)를 사용합니다. – LazyOne