問題タブ [phpstan]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
58 参照

php - メソッド ... 配列を返す必要がありますただし、配列を返します('key1'=>SomeObject|null,'key2'=>SomeObject2|null)

私は PHPStan を初めて使用し、理解できない問題に遭遇しました。

したがって、次のような配列を返すはずの関数がありますarray<a|b|c|d..., mixed>(a、b、c、dはすべてクラス定数です)が、関数では、配列は次のようになります。

次のエラーが表示されます。

Method doSomething() should return array<a|b|c|d...,mixed> but returns array('key1'=>SomeObject|null,'key2'=>SomeObject2|null)

この配列が @return doc タグで定義されている配列に「似ている」と PHPStan に「信じさせる」にはどうすればよいですか?

私は何を試しましたか?

  • /**@var array<SomeConstants::*> $array**/
  • /**@phpstan-var array<SomeConstants::*> $array**/

どちらも問題なく動作しますが、私のコード レビュー担当者によると、配列に存在しないキーが存在すると PHPStan に強制するだけなので、これは「汚い」ソリューションです...

0 投票する
0 に答える
93 参照

methods - PHP Laminas PHPStan - 未定義メソッドの呼び出し Laminas\Stdlib\RequestInterface::isPost()

laminas プロジェクトで phpstan を実行していて、エラーが発生しています。

例として、コントローラーには正常に動作する標準コードがあります。

$request = $this->getRequest();

if ($request->isPost()) { ... }

ただし、phpstan は不平を言っています。

未定義のメソッド Laminas\Stdlib\RequestInterface::isPost() の呼び出し

問題は、getRequest() が実際には Laminas\Http\Request から isPost 関数を継承する Laminas\Http\PhpEnvironment\Request のインスタンスを返しているようです。ただし、この関数は RequestInterface では定義されていません。

1 つの解決策は RequestInterface で isPost を定義することですが、ベンダー コードの変更は避けたいと思います。

これを回避するより良い方法はありますか?

0 投票する
3 に答える
92 参照

php - PHPで関数のパラメータをタイプヒントする方法

スイッチに型が混在しているため、この関数の戻り型の取得に問題があります。私は混合を使用しましたが、爆発しました。ユニオン型にはstring|bollといくつかの型を使用しました。

すべてを試しましたが、CI/CD パイプライン (AWS) に合格しませんでした

ERROR 以下はエラーです