0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PHPStanをインストールして使ってみる

Last updated at Posted at 2024-08-18

はじめに

PHPを学習して2か月が経ち、コード量が増えるにつれてエラー原因の特定に時間がかかるようになってきました。そのため、潜在的なバグやエラーを検出できる静的解析ツールを導入することにしました。

PHPStanとは

PHPStanはPHPの静的解析ツールで、実行ファイルを実行することなくコードを解析し、バグやエラーを検出することができます。

導入

公式ドキュメントに従い、Composerを使ってインストールします。PHPStanの実行ファイルはデフォルトで /vendor/bin に配置されます。

composer require --dev phpstan/phpstan

設定ファイルの作成

PHPStanの設定ファイル (phpstan.neon) を作成します。level には0から9までの数値が設定可能で、数値が大きくなるほど解析が厳しくなります。記事を参考にすると、レベル8や9は厳しすぎると感じる人が多いようです。今回はレベル6を使用します。

paths には静的解析の対象となるフォルダを指定し、excludePaths には静的解析を除外したいフォルダを指定します。

phpstan.neon
parameters:
  level: 6
  paths:
    - .
  excludePaths:
    - vendor

実行

型が一致していないコードを用意して、PHPStanを実行してみます。

sample.php
<?php
function addNum(int $a, int $b): int 
{
    return $a + $b;
}

$result = addNum("10", 20); // 引数の型が不一致

次に、以下のコマンドでPHPStanを実行します。

./vendor/bin/phpstan analyze -c phpstan.neon

結果は、引数の型が一致していないというエラーが表示されます。

 ------ --------------------------------------------------------------- 
  Line   sample.php
 ------ --------------------------------------------------------------- 
  :7     Parameter #1 $a of function addNum expects int, string given.  
 ------ --------------------------------------------------------------- 

また、composer.json に以下を追加すると、composer phpstan だけで実行できるようになります。

"scripts": {
    "phpstan": "./vendor/bin/phpstan analyze -c phpstan.neon"
}

参考資料

終わりに

静的解析ツールの真価は、実際に運用する中で実感するものだと思います。高品質なコードを書くために、使い続けられるようにしたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?