2017-02-08 6 views
1

사용자 지정 PHP 프레임 워크를 사용하여 .phpstorm.meta.php 파일을 생성하려고합니다. 내가 가진여러 인수가있는 정적 메서드에 대한 PhpStorm 메타 파일 구문

공장 방법은 다음과 같은 구문은 다음과 같습니다

나는 행운과 함께 지금까지 시도했습니다 무엇
<?php 

// Models 
$project = Loader::model('Transform', 'Project'); 
    // returns instance of \Framework\Base\Model 
$user = Loader::model('Base', 'User'); 
    // returns instance of \Framework\Base\Model 
$asset = Loader::model('Transform', 'Asset'); 
    // returns instance of \Framework\Hunk\Transform\Model\Asset 

// Helpers 
$router = Loader::service('Router', 'Router'); 
    // returns instance of \Framework\Hunk\Router\Service\Router 
$helper = Loader::service('Transform', 'Helper'); 
    // returns instance of \Framework\Hunk\Transform\Service\Helper 

:

<?php 
namespace PHPSTORM_META { 
    /** @noinspection PhpUnusedLocalVariableInspection */ 
    /** @noinspection PhpIllegalArrayKeyTypeInspection */ 
    /** @noinspection PhpLanguageLevelInspection */ 
    $STATIC_METHOD_TYPES = [ 
     \Framework\Loader::model('Transform', '') => [ 
      '' = '@', 
      'Product' instanceof \Framework\Base\Model, 
      'Asset' instanceof \Framework\Hunk\Transform\Model\Asset, 
      'Step' instanceof \Framework\Base\Model, 
      'Stage' instanceof \Framework\Base\Model, 
     ], 
     \Framework\Loader::model('Hansel', '') => [ 
      '' = '@', 
      'User' instanceof \Framework\Base\Model, 
     ], 
     \Framework\Loader::service('Transform', '') => [ 
      '' = '@', 
      'Helper' instanceof \Framework\Hunk\Transform\Service\Helper, 
     ], 
     \Framework\Loader::service('Router', '') => [ 
      '' = '@', 
      'Router' instanceof \Framework\Hunk\Router\Service\Router, 
     ], 
    ]; 

} 

내가 PhpStorm가 여러 인수를 인식 얻을 수있는 방법 메타 파일의 팩토리가 자동 완성 및 선언 찾기를 제대로 수행 할 수 있습니까?

나는 phpstorm meta docs을 살펴 봤지만 그다지 깊이있는 것 같지 않습니다.

답변

2

글쎄, .phpstorm.meta.php의 저자로서 나는 당신에게 명확한 답을 빨리 줄 수있다.

2016.3 현재 PhpStorm은 FIRST 인수 값과 만 일치하며이 값은 하드 코드됩니다.

이 전체 기능은 매우 특별한 기능 요청에서 발전하여 지속적으로 향상되었지만,이 부분은 내가 설명한 대로만 작동합니다.

그래서 우리는 가능한 방법을 논의 할 수 https://youtrack.jetbrains.com/issue/WI-27832

https://youtrack.jetbrains.com/issues/WI 주시기 약간 관련된 요청이 있습니다.

또한 구문은 현재 사용되지 않습니다. https://confluence.jetbrains.com/display/PhpStorm/PhpStorm+Advanced+Metadata - sample.meta.php