ホームページ >バックエンド開発 >PHPチュートリアル >PHPSAによる静的分析:PHPスマートアナライザー

PHPSAによる静的分析:PHPスマートアナライザー

William Shakespeare
William Shakespeareオリジナル
2025-02-10 10:00:15383ブラウズ

PHPスマートアナライザー(PHPSA)などの静的コード分析ツールは、特に大規模なプロジェクトで高品質のコードを維持するために重要です。これらのツールは、コードを自動的に確認し、一般的なエラーを検出し、コーディング標準を実施し、クリーンコードブロックを強制します。

Static analysis with PHPSA: PHP Smart Analyzer

PHPSAは、構文エラーを検出し、コードの品質とプログラミング標準に関するフィードバックを提供するユーザーフレンドリーなPHP静的分析ツールです。 .pharファイルとして、またはComposerを介してインストールできます。

構文エラーの検出に加えて、PHPSAは、他の関数エイリアス、未定義のプロパティ、ドキュメントブロックの欠落である関数を指摘し、より良いコーディング原則を推奨することもできます。文書化されていない散らかったコードを完全に文書化されたクリアコードに変換できます。

PHPSAはまだ初期のアルファ段階にあり、いくつかの機能はまだ完璧ではありませんが、コードベースに品質基準を施行するための有望なツールです。チーム環境では特に貴重であり、誰もが同じ基準を順守することを保証します。 PHPSAを他の分析ツールと組み合わせて使用​​して、包括的な品質保証システムを取得することをお勧めします。

単独で、またはチームワークで働いているか、小規模または大規模なプロジェクトに取り組んでいるかにかかわらず、一定の要件はコード品質です。プロジェクトとチームが大きくなればなるほど、維持するのが難しくなります。

Static analysis with PHPSA: PHP Smart Analyzer

この困難の増加を遅くする良い方法は、静的分析ツールを使用することです。静的分析は、プログラムを実際に実行することなく、ソフトウェアを分析するプロセスです。これは、自動コードレビューの種類です。静的分析ツールは、一般的なエラーを検出し、コーディング標準を実施し、さらにはコードブロックをクリーンアップします。

の時代は終わっていませんが、現在、高品質のコードを作成および維持するのに役立つ多くの優れたツールがあります。 php -l filename

、実証済みのPHPリントであると言えば、ターゲットファイルで構文分析を実行し、発見したエラーを出力します。私はこのコードを使用してPHPで電子メールを送信していました。これは、分析の良い出発点です。 php -l filename

<code class="language-php"><?php 
class Email{

    //构造函数
    function Email( $subject, $message, $senderName, $senderEmail, $toList, $ccList=0, $bccList=0, $replyTo=0 ){

        $this->sender = $senderName . " <$senderEmail>";
        $this->replyTo = $replyTo;
        $this->subject = $subject;
        $this->message = $message;

        // 设置收件人
        if( is_array($toList)){
            $this->to = implode( $toList, "," );
        }else{
            $this->to = $toList;
        }

        // 设置抄送列表
        if( is_array($ccList) && count($ccList)){
            $this->cc = implode( $ccList, "," );
        }else{
            $this->cc = $ccList;
        }

        // 设置密送列表
        if( is_array($bccList) && count($bccList)){
            $this->bcc = implode( $bccList, "," );
        }else{
            $this->bcc = $bccList;
        }
    }

    function sendMail(){

        // 为PHP mail()函数创建标头
        $this->headers = "From: " . $this->sender . "\n";
        if( $this->replyTo ){
            $this->headers .= "Reply-To: " . $this->replyTo . "\n";
        }
        if( $this->cc ){
            $this->headers .= "Cc: " . $this->cc . "\n";
        }
        if( $this->bcc ){
            $this->headers .= "Bcc: " . $this->bcc . "\n";
        }

        print "To: " . $this->to ."<br>Subject: " . $this->subject . "<br>Message: " . $this->message . "<br>Headers: " . $this->headers;
        return mail( $this->to, $this->subject, $this->message, $this->headers );
    }
}
</code>
ご覧のとおり、これは簡単な電子メールの送信クラスです。このコードでPHP Lintを実行すると、すべてが正常に機能することがわかります。

<code class="language-bash">php -l Email.php</code>
結果は次のとおりです

電子メールで検出された構文エラーはありません

2016年には、コードの品質とプログラミング標準も考慮する必要があるため、この結果は十分ではありませんでした。

PHPスマートアナライザーを入力します

PHPSAはPHP静的分析ツールです。 Static analysis with PHPSA: PHP Smart Analyzer 以下に示すように、pHPSAは.pharファイルとして、または作曲家を介してインストールできます。

これにより、プロジェクトのベンダー/ビンフォルダーにリンクされるコマンドラインユーティリティが作成されます。

phpsaを使用して

インストールが完了した後、./vendor/bin/phpsaを実行できます。

Static analysis with PHPSA: PHP Smart Analyzer

上記の実行後に得られた結果は、リストコマンドを実行した結果と同じです。ヘルプコマンドは、PHPSAでヘルプを実行するための指示をリストします。チェックコマンドは、指定されたファイルまたはフォルダーで静的分析を実行します。

前にPHP Lintを実行したため、コードに構文エラーが見つかるとは期待されていません。しかし、エラーを意図的に挿入するとどうなりますか? phpsaはそれを見つけることができますか?

メールクラスに小さな変更を加えましょう。 (複製を避けるために、元のテキストと同じで、ここで変更されたコードは省略されています)

今回は、コードに明らかな構文エラーがあります。 phpsaを実行して、結果を確認しましょう。

Static analysis with PHPSA: PHP Smart Analyzer

ご覧のとおり、PHPSAは構文エラーをすばやく検出できます。しかし、これは実際には新しいものではなく、私たちの単純なPHP Lintはこのエラーを検出することもできます。それでは、それを修正して、PHPSAに他の機能があるものを確認しましょう。

Static analysis with PHPSA: PHP Smart Analyzer

今見るべきことがたくさんあります! (PHPSAの警告情報は、重複を避けるためだけに、元のテキストと同じで、ここでは省略されています)

上記のすべての問題を修正するためにコードを修正しましょう。 (複製を避けるために、元のテキストと同じで、ここで変更されたコードは省略されています)

PHPSAを実行した後、エラーや警告が表示されません。つまり、コードに別の品質のレイヤーを追加しただけです。

結論

PHPSAはオープンソースです。つまり、実際にその開発を追跡し、機能を要求し、コードを貢献することができます。これは、フォーカスツールであるため、PHPSAは高速で軽量です。現時点ではまだ初期のアルファ段階にあります。つまり、時には異常に動作し、主に異なるオペレーティングシステムで異なる結果をもたらす可能性があります。さらに、多くの機能がまだ開発中です。

コードベースで品質基準を実施したい場合、

静的分析は貴重なツールです。チームで作業するとき、それは誰もが同じ基準を使用することを強制するため、より価値があります。 Code SnifferやMess Detectorなど、いくつかの方法で他のツールに遅れをとっていますが、PHPSAは非常に有用なツールであり、非常に有用なツールです。より広い範囲のエラーをカバーするより良い方法の1つは、さまざまな分析ツールを組み合わせることであるため、QAスタックでPHPSAを使用することを検討してください。 GitHubのプロジェクトに貢献している可能性があります。これは、さまざまなTo Doおよび計画的な機能がリストされているプロジェクトに貢献してください。

phpsaを試したことがありますか?他のツールと比較していると感じていることをお知らせください!

(FAQパーツはここでは省略されています。これは、元のテキストと同じです。複製を避けるためだけです)

以上がPHPSAによる静的分析:PHPスマートアナライザーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。