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チェックコード仕様の実行
Code-SnifferのデフォルトではPEARコード仕様が使用されます.
またはデフォルト設定の変更
phpcbs修復コードの実行
詳細については、公式ドキュメントを参照してください.
PHP Stormとの統合
Code SnifferとPHP Stormを統合し、IDEにコードの仕様状況をリアルタイムで表示させ、開発者にコードの修正を注意し、長期にわたって使用することで、開発者に非常に規範的なコード習慣を身につけることができる.
構成方法 PHPStorm構成コードSnifferパス: 設定Inspections適切なCoding Standard を選択
GIT Hookによるコードチェックの強制
GITのPre-Commit Hookを使用すると、コードがコミットされる前にCode Snifferを強制的に呼び出してコードチェックを行うことができ、仕様に合致しない場合、ユーザーがコードをコミットすることを阻止します.プロジェクトの を作成する.書込みコード:Pre-Commit Gist 試してみる:)
PHP仕様
なぜコード仕様を統一する必要があるのですか?
PHPコミュニティは百花斉放で、多くの関数ライブラリ、フレームワーク、コンポーネントを持っています.PHP開発者は通常、自分のプロジェクトでいくつかの外部ライブラリを使用するため、PHPコードが同じコードスタイルに従う(できるだけ近づく)ことが重要であり、開発者が複数のコードライブラリを自分のプロジェクトに簡単に統合することができます.
現在流行しているいくつかの規範:
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つの小さなツールです
公式文書を参照
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にコードの仕様状況をリアルタイムで表示させ、開発者にコードの修正を注意し、長期にわたって使用することで、開発者に非常に規範的なコード習慣を身につけることができる.
構成方法
GIT Hookによるコードチェックの強制
GITのPre-Commit Hookを使用すると、コードがコミットされる前にCode Snifferを強制的に呼び出してコードチェックを行うことができ、仕様に合致しない場合、ユーザーがコードをコミットすることを阻止します.
.git/hooks
にpre-commit
ファイル