CodeSnifferとPhpEd

PHP_CodeSnifferツールの記述は、コーディングされたコードがコーディング標準に準拠していることを確認するために使用されますが、すでにハブで遭遇しています。 このツールは非常に便利で便利です。誰も議論しないと思います。 次のコミットの前にチェックするためにバージョン管理システムと統合する方法を説明するインターネット上の記事がありますが、コードを作成中にIDEに固定してコードをチェックしたかったのです。



歴史的に、私の仕事ではNusphere IDE-PhpEdを使用しています。 PhpEdを使用すると、エディターのコードで任意の操作を実行できるphpスクリプトを接続できます。 スクリプトは外部プログラムを実行し、標準出力ストリームからコードエディターに直接データを返すこともできます。



Nusphereフォーラムには、 自動化スクリプトに関するセクションがあります



私は長い間この機能について知っていましたが、CodeSnifferを使用するにはあまり適していません。 理由を説明します。 コードの分析結果として取得したすべてのデータをエディターのデバッグウィンドウにリダイレクトできますが、それは単なる静的テキストになります。 エラー行番号もプレーンテキストであり、コード内を移動することはできません。 エラーのある行番号を目で見て、この行に手を移動して編集する必要があります。 もちろん、私はこのビジネスがまったく好きではありませんでした。



エディターのログウィンドウで、場所の列に気付きました。 おそらくこれが私が必要としたものですが、この列にデータを表示する方法を知りませんでした。

開発者フォーラム全体を壊し、この問題に特化したいくつかのトピックを見つけましたが、どこにも答えもレシピもありませんでした。 次のメッセージに出くわして、私はすでに必死でした。



File location regexp: ^([^ ]+) (\([0-9]*\)) .*$

(or say Output location regexp)

by applying this regexp on each line in the output, IDE will get array of two elements (when matched, of course). And one of the elements will be file name and the other is line number.








つまり、この正規表現に従って出力行を形成すると、IDEはファイルとその中の行番号に関する情報を送信していることを理解します。 タスクは、CodeSnifferを起動し、そこからデータを取得し、出力を少し再フォーマットし、エディターのログウィンドウに送信することでした。これはほんの些細なことです。



これですべてが段階的になりました。



0. PhpEdの一部となるphp用のpearをインストールします

c:\Program Files\NuSphere\PhpED\php5> go-pear.bat







およびphp_snifferパッケージ

c:\Program Files\NuSphere\PhpED\php5> pear install php_sniffer







1. CodeSniffer経由で小さなラッパークラスをダウンロードします。 入れて

c:\Program Files\NuSphere\PhpED\scripts\







2. PhpEdを開きます。



設定>ツール>統合

新しいスクリプトメニューを作成する

新しいサブメニュー「CodeSniffer」を作成します



3.作成したアイテムを編集します。



-「シェル」で実行

-コマンドライン:

"c:\Program Files\NuSphere\PhpED\php5\php.exe" "c:\Program Files\NuSphere\PhpED\scripts\codesnifferwrapper.php" "@Fname@"





-ショートカット:CTL-ALT-0(または任意の便利な)

-次の点に十字を入れます:

Show this command in Workspace popup – for files

Show this command in Explorer popup – for files

Show this command in File Bar popup

Redirect Output Stream to log window








結果を保存し、任意のphpファイルを開き、割り当てられたキーボードショートカットを押して楽しんでください。










All Articles