
クラス自体では使用されていないため、使用されていないプライベートクラス要素を見つけるのは簡単です。しかし、パブリックメソッド/プロパティ/定数はどうですか?
final class Book
{
public function getTitle(): string
{
// ...
}
- public function getSubtitle(): string
- {
- // ...
- }
}未使用のパブリック要素をどのように検出できますか?
それがまさにこのパッケージが行っていることです。
この手法は、プライベートプロジェクトや、ローカルでのみ呼び出されるようにprivateに変更する必要がある誤って使用されたpublic修飾子を検出するために非常に役立ちます。
composer require tomasvotruba/unused-public --devパッケージは、PHP 7.2+バージョンで利用できます。
phpstan拡張機能インストーラーを使用すると、すべてを実行できます。
単純な構成で各アイテムを独自に有効にします。
# phpstan.neon
parameters :
unused_public :
methods : true
properties : true
constants : true何百もの報告されたパブリック方法はありますか?それらをすべてチェックする時間はありませんが、徐々にそれらを処理したいですか?
代わりに最大許容%構成を設定します:
# phpstan.neon
parameters :
unused_public :
methods : 2.5これは、すべてのパブリック方法の最大2.5%が未使用として許可されていることを意味します。
削除すべきではないが、代わりにprivate / protectedされたローカルのみのメソッドコールを確認しますか?
# phpstan.neon
parameters :
unused_public :
local_methods : true いくつかの方法は、小枝またはブレードのテンプレートでのみ使用されており、未使用として誤って誤って報告される可能性があります。
{{ book. getTitle () }}どうすればそれらを除外できますか?メソッド名を除外するように、構成に小枝またはブレードテンプレートディレクトリを追加します。
# phpstan.neon
parameters :
unused_public :
template_paths :
- templates 場合によっては、ルールは誤検知を報告します。
オープンソースベンダーは、プロジェクトで使用されるパブリックAPIを設計します。要素は未使用として報告されていますが、実際には公開されるように設計されていますか?
クラスまたは要素を@apiアノテーションでマークしてスキップします。
final class Book
{
/**
* @api
*/
public function getName ()
{
return $ this -> name ;
}
}