質問: 私たちのプロジェクトはテストを実行するためにライブラリを必要とするので、このパッケージは`composer.json``require-dev`セクションにリストされています。 ``` { //... "require": { "php": "^7.4|^8.0", }, "require-dev": { "cache/array-adapter": "^1.1" }, //... }Copy code ``` 手動のコードレビュー中に、このライブラリが本番コードでも使用されていることに気付きました。 修正は簡単です。対応するパッケージを`require-dev`セクションから`require`セクションに移動しました。 ``` { //... "require": { "php": "^7.4|^8.0", "cache/array-adapter": "^1.1" }, "require-dev": { }, //... }Copy code ``` この種の問題を回避するために、自動の方法/テストを探しています。ステージング中の手動テストでこの種の問題を回避できると思いますが、それだけでは十分ではありません。 コアコードにdev-dependencyが必要ないことを確認するにはどうすればよいですか?
回答: ### 答え : #### 解決: PHPStan(またはPsalm、またはその他の静的アナライザー)を使用してこれを実装できます。開発依存関係を削除してからそのようなツールを実行すると、そのような依存関係から欠落しているクラスについて通知されます。 ただし、注意が必要です。これがより厳密なコードの記述に役立つ場合でも、アプリケーション全体に適切な戻り型を実装するには、最初にいくつかの作業が必要になる場合があります。 別のアイデア:開発の依存関係を削除し、PHPUnitやBehatなどの通常のテストスイートを実行します。