2017-02-08 13 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

関連する問題