最近、PHPコミュニティーで、コードレビューについての議論をよく耳にします。貢献することに決めました。プロジェクトのコードを簡素化し、コードの品質を向上させるための可能性について話したいと思います。これはPHPだけでなく、ここで説明する同様のツールが他のプログラミング言語にも存在します。たとえば、NodeJSのプロジェクトに参加したときにそれらについて学びました。
コードの品質を改善し、構文エラーを見つけ、すべてを1つのコードスタイルにするなどのツールを共有したいと思います。
事前コミット
検索エンジンで「pre-commit php」と入力すると、記述されたコードを分析する既製のスクリプトがいくつか表示されます。 gitの場合、スクリプトは「.git / hooks /」フォルダーに配置する必要があります。その後、コミットするたびにスクリプトが実行され、エラーが検出された場合は、コードをリポジトリーにプッシュできなくなります。一部のIDEには同じことを行う個別のプラグインがありますが、大規模なチームがあり、全員が異なるエディターを使用している場合はどうでしょうか。また、このスクリプトは、開発者ごとにIDEを個別に構成するよりも、リポジトリにアップロードする方が簡単です。さらに重要なのは、このスクリプトでは、静的アナライザー(phpstanなど)など、チームで使用する他のツールを追加できることです。)、および/または単体テスト(phpunitなど)
コード品質の向上に役立つツール
php -l(構文チェックのみ(lint))は、PHPコアに組み込まれた構文チェッカーです。
php-cs-fixer(PHP Coding Standards Fixer)-コードをPSR-1、PSR-2など、またはSymfonyなどの他のコミュニティに修正します。設定を通じて(チーム)スタイルを定義することもできます。それら。チーム全体で同じコードスタイルが使用されます。
php-cs + php-cbf(PHP CodeSniffer + PHP Code Beautifier)-2つのPHPスクリプトのセットです。 PHP、JavaScript、CSSファイルを抽出して特定のコーディング標準の違反を検出するメインのphpcsスクリプト、および2番目のphpcbfスクリプトは、一般的なコーディング違反を自動的に修正します。 php-cs-fixerに似たツール。
php-md(PHP Mess Detector)-サイドプロジェクトPHP Dependは、よく知られたJava PMDツールと同等のPHPを目指しています。特定のPHPソースコードベースを取得し、このソースでいくつかの潜在的な問題を探します。これらの問題には、構文エラー、次善のコード、過度に複雑な式、未使用のパラメーター/メソッド/プロパティなどがあります。
php-cpd(PHPコピー/貼り付け検出器)-PHPコードのコピー/貼り付け検出器。それら。別々の関数/メソッドに移動できるアプリケーションの異なる部分で同じコードブロックを見つけます。
自動化されたコードレビューをさらに深く掘り下げることができ、おそらく他の多くの興味深いツールを見つけるでしょう。
出力
開発の世界で利用可能なツールを使用して、コードをチェックするための多くのルーチンプロセスを自動化できます。これにより、その品質が桁違いに向上します(ヒューマンファクターを除外しているため)。チーム全体によるこれらのツールの使用の信頼性を高めるために、ソース管理システムでコミットが作成される前に実行されるコミット前スクリプトにそれらを挿入できます。