匿名関数に関してPhpStormのコード検証で厄介な問題を解決しようとしています。渡されたオブジェクトのメソッドは表示されません。PHPDocとメソッド匿名関数
以下のコードスニペットは、Predisとパイプラインメソッドに依存しています。
startCacheClient()
インスタンス化とpredisのインスタンスを返します。
パイプライン()
しかし
$パイプセット()と$パイプ - 、それが必要として検証>(有効期限切れ)
"Method 'Set' Not Found 'および" Method' Expire 'Not Fouを検証して返します。 ND
$this->i = 0;
$this->startCacheClient()->pipeline(function($pipe) use($values, $jsonEncode, $keepAlive){
foreach($values as $key => $currentValue){
if($jsonEncode) {
$currentValue = gzcompress(json_encode($currentValue), -1);
}
$pipe->set($key, $currentValue);
$pipe->expire($key, $keepAlive);
$this->i++;
}
});
「にどのように私はこれらのメソッドは、実際に存在し、利用可能であることを理解してたPHPDocを通じてPhpStormを得ることができます。コードは期待どおり機能しますが、検証の告知は面倒です。
は[\ Predis \パイプ\パイプライン](HTTPSのインスタンス$パイプです.com/nrk/predis/blob/v1.1/src/Pipeline/Pipeline.php)? – segFault
実際のPHPDocソリューションが必要な場合は、 '/ ** @var \ Predis \ ClientContextInterface $ pipe * /' - そのような行を匿名関数のどこかに置きます(例えば、関数本体の開始直後 - コード - 元のコードサンプルの 'foreach'文の前に) - *はすべきです(100%ではありません)。 – LazyOne