PHP仕様


>初心者として、仕様書を書くコードも必修科目であり、対応するコード仕様書を読む以外に、関連するツールを十分に利用することで、進級の道を半分にすることができます.今日の共有では、PHP仕様を簡単に整理し、コードチェックツールCode Snifferを紹介し、PHPStormとGITを組み合わせて実践します.
PHP仕様
なぜコード仕様を統一する必要があるのですか?
PHPコミュニティは百花斉放で、多くの関数ライブラリ、フレームワーク、コンポーネントを持っています.PHP開発者は通常、自分のプロジェクトでいくつかの外部ライブラリを使用するため、PHPコードが同じコードスタイルに従う(できるだけ近づく)ことが重要であり、開発者が複数のコードライブラリを自分のプロジェクトに簡単に統合することができます.
現在流行しているいくつかの規範:
  • PSR PSRはPHP Standard Recommendationsの略で、PHP FIG組織が制定したPHP規範であり、PHP開発の実践基準である.PHP FIG,FIGはFramework Interoperability Group(フレームワーク相互運用性グループ)の略で、いくつかのオープンソースフレームワークの開発者によって2009年に設立され、そこからも多くの他のメンバーが選ばれた(Laravel,Joomla,Drupal,Composer,Phalcon,Slim,Symfony,Zend Frameworkなどを含むが、これらに限定されない)、「公式」組織ではないが、しかし、ほとんどのPHPコミュニティを代表しています.プロジェクトの目的は:フレームワークの作者あるいはフレームワークの代表の間で討論することを通じて、最低の程度の制限で、1つの協力の標準を制定して、各フレームワークは統一的な符号化の規範に従って、各家の自分で発展する風格がPHPの発展を阻害することを避けて、このプログラムの設計師の昔からの悩みを解決します.現在、6つの基準が採決され、ほとんどのPHPフレームワークの支持と承認を得ている.詳しくは公式の説明を参照してください.
  • 中国語ドキュメント
  • 公式サイト
  • PEAR The PEAR Coding Standards apply to code that is part of the official PEAR distribution. Coding standards often abbreviated as CS among developers and they aim to keep code consistent to be easily readable and maintainable by most of PEAR folks. 公式説明
  • 参照
  • Zend Zend Frameworkで使用されるコード仕様.公式説明
  • 参照
    Code Sniffer
    公式サイト:https://github.com/squizlabs/PHP_CodeSniffer
    PHP_CodeSniffer is a set of two PHP scripts; the main phpcs script that tokenizes PHP, JavaScript and CSS files to detect violations of a defined coding standard, and a second phpcbf script to automatically correct coding standard violations. PHP_CodeSniffer is an essential development tool that ensures your code remains clean and consistent.
    簡単に言えば2つの小さなツールです
  • phpcs(PHP Code Standard)コード仕様
  • を確認するために使用される
  • phpcbf(PHP Code Beautifier and Fixer)自動修復コード
  • Code Snifferのインストール
    公式文書を参照
    Code Snifferの使用
    phpcsチェックコード仕様の実行
    $ phpcs /path/to/code/myfile.php
    
    FILE: /path/to/code/myfile.php
    --------------------------------------------------------------------------------
    FOUND 5 ERRORS AFFECTING 4 LINES
    --------------------------------------------------------------------------------
     2 | ERROR | [ ] Missing file doc comment
     3 | ERROR | [x] TRUE, FALSE and NULL must be lowercase; expected "false" but
       |       |     found "FALSE"
     5 | ERROR | [x] Line indented incorrectly; expected at least 4 spaces, found 1
     8 | ERROR | [ ] Missing function doc comment
     8 | ERROR | [ ] Opening brace should be on a new line
    --------------------------------------------------------------------------------
    PHPCBF CAN FIX THE 2 MARKED SNIFF VIOLATIONS AUTOMATICALLY
    --------------------------------------------------------------------------------

    Code-SnifferのデフォルトではPEARコード仕様が使用されます.--standard=xxxで指定できます.
    $ phpcs --standard=PSR2 /path/to/code/myfile.php

    またはデフォルト設定の変更
    $ phpcs --config-set default_standard Squiz

    phpcbs修復コードの実行
    $ phpcbf /path/to/code
    Processing init.php [PHP => 7875 tokens in 960 lines]... DONE in 274ms (12 fixable violations)
        => Fixing file: 0/12 violations remaining [made 3 passes]... DONE in 412ms
    Processing config.php [PHP => 8009 tokens in 957 lines]... DONE in 421ms (155 fixable violations)
        => Fixing file: 0/155 violations remaining [made 7 passes]... DONE in 937ms
    Patched 2 files
    Time: 2.55 secs, Memory: 25.00Mb

    詳細については、公式ドキュメントを参照してください.
    PHP Stormとの統合
    Code SnifferとPHP Stormを統合し、IDEにコードの仕様状況をリアルタイムで表示させ、開発者にコードの修正を注意し、長期にわたって使用することで、開発者に非常に規範的なコード習慣を身につけることができる.
    構成方法
  • PHPStorm構成コードSnifferパス:
  • 設定Inspections適切なCoding Standard
  • を選択
    GIT Hookによるコードチェックの強制
    GITのPre-Commit Hookを使用すると、コードがコミットされる前にCode Snifferを強制的に呼び出してコードチェックを行うことができ、仕様に合致しない場合、ユーザーがコードをコミットすることを阻止します.
  • プロジェクトの.git/hookspre-commitファイル
  • を作成する.
  • 書込みコード:Pre-Commit Gist
  • 試してみる:)