読み取り可能-PHPの別のリンター

PHPで読み取り可能なリンターを紹介しますこれには、コードの可読性を向上させる16のルールが含まれています。主な利点は次のとおりです。



  • 速度 -1000ファイルあたり1秒未満
  • ベースライン設定 -プロジェクトのすべてのエラーを一度に修正することはできませんが、現在のエラーで構成を作成します。そして、それらを無視しますが、新しいものに反応します。
  • ルールはアナログ(主観的)よりも簡単に記述できます




2つの重要な免責事項



  1. 私は主な貢献者なので、主観的になることができます。Readableはもともとベルギーの会社の役人のために書かれました彼らはこれをしばらくの間内部で使用しており、オープンソースプロジェクトを読み取り可能にすることを決定しました。
  2. JSで書かれています。


インストールと起動



読み取り可能はnpm経由でインストールされます:



$ npm install @officient/readable --save-dev


インストール後、構成ファイルを作成する必要があります。



$ npx readable --init


そして、あなたは走ることができます:



$ npx readable


ルール



現在、読み取り可能な16のルールがあります。



  1. namespace-max-files-名前空間内のファイルの最大数
  2. argument-override-関数の引数の値の変更を禁止します
  3. file-max-size-ファイルの最大行数
  4. empty-catchcatch
  5. class-comment — - ,
  6. forbidden-functions — (eval, print_r ...)
  7. missing-bracesif, for ...
  8. variable-length — ( $id, $i)
  9. function-max-size
  10. loop-max-size
  11. forbidden-function-prefix — . , checkSomething — , ?
  12. if-assigmentif
  13. complex-if&& || if
  14. ternary-max-length
  15. loop-max-nest
  16. max-nest




readable , . — . , - , :



  1. readable . , .
  2. . , .


例としてloop-max-sizeルールを見てみましょう彼のすべてのコード:



const loops = ['for', 'foreach'];

module.exports = {
  check(maxLines, tokens, report) {
    tokens.matchAll(loops, (token) => {
      const end = token.copy().step().stepToClosing(); // skip ()
      end.step().stepToClosing();
      const lines = (end.current().line - token.current().line);
      if (lines > maxLines) {
        report(`Loop is longer than ${maxLines} lines [${lines}].`, token.current());
      }
    });
  },
};


ルールは次のように述べています。



  1. すべてを見つけるforforeach
  2. 次のトークンを取ると.step()、それは左括弧になり(ます。右括弧に移動します.stepToClosing()
  3. 2番目のステップを繰り返しますが、ループの本体({および}について行います
  4. サイクルボディの長さを確認してください。


結論の代わりに



私は、コードの追加のリンターとして自分のプロジェクトで読み取り可能を使用しています。私はすべて、特にベースラインが好きです(公平に言うと、詩篇にもこれがあります)。彼は補助リンターのニッチを占める機会があります。




All Articles