miau's blog?

| 1 |

2008年 6月 01日 (日曜日)

PHP_CodeSniffer の --standard オプション比較

- PHP on miau's blog?
上流の会社が最近 PHP_CodeSniffer によるスタイルのチェックを推奨しているらしい。そんなもので縛らなくてもまともなコード書ける人ばかりだといいんだけど・・・うちでもたまにひどい人がいるから文句言えない。(平気で 8 タブでインデントするような人もいたし。見たとき眩暈がした・・・。)

PHP_CodeSniffer では自分でコーディングスタイルの基準を定義したりもできるんだけど、組み込みの基準も何種類かあったりする。その基準で PEAR と Zend 以外に言及してる人が少なかったから、まずはそこについて触れておこうかと。
[Read More!]
17:47:28 - miau - No comments - No Trackbacks - Permalink

PHP_CodeSniffer のつづき

- PHP on miau's blog?
PHP_CodeSniffer の --standard オプション比較 - miau's blog?

ここで書き漏らした PHP_CodeSniffer の諸々について。
[Read More!]
19:35:57 - miau - No comments - No Trackbacks - Permalink

2008年 6月 26日 (木曜日)

PHP_CodeSniffer 文字数カウントのバグ報告

- PHP on miau's blog?
PHP_CodeSniffer で「一行の文字数は xx 文字まで」みたいなチェックがあるけど、これがマルチバイトの文字幅を考慮せずにバイト数での判定になっていたので改善要望出しておいた。

PEAR :: Request #14237 :: Line length should be measured by mb_strwidth

対応は簡単で、PEAR/PHP/CodeSniffer/Standards/Generic/Sniffs/Files/LineLengthSniff.php の 98 行目付近で strlen() の代わりに mb_strwidth() を使うだけ。まじめに対応するのであれば、mbstring.internal_encoding と対象ファイルの文字コード違う場合も考慮しないといけないんだけど、海外のひとにマルチバイト関連の報告してもまともに対応されたためしがないので、とりあえず小手調べみたいな感じ。

(2010-09-10 追記)対応してくれたみたいで、チケットがクローズされてました。

このバグ報告の途中で、最終行の文字数チェックが走らないことにも気づいてしまった。ついでにこちらもバグ報告しておいた。

PEAR :: Bug #14238 :: Line length not checket at last line of a file

これはそのまんまですね。

(2008-06-28 追記)追記してたら長くなっちゃったので続きます。
[Read More!]
02:09:00 - miau - No comments - No Trackbacks - Permalink

2008年 6月 28日 (土曜日)

PHP_CodeSniffer バグ報告 その 2

- PHP on miau's blog?
また PHP_CodeSniffer のバグ見つけたので報告とかやってました。今日も 2 件。

PEAR :: Bug #14250 :: ArrayDeclarationSniff emit warnings at malformed array

「"=>" の前後には必ずスペースを入れる」ってのをルール化したくて、Squiz/Sniffs/Arrays/ArrayDeclarationSniff.php を取り込んで使ってたんだけど、配列の書き方が変だとエラーが出ちゃう。普通に使うぶんには問題ないんだけど、phpUnderControl 上で実行したときはこのエラーメッセージのせいで XML のパースに失敗して、レポートが出なくなってしまうから結構困る。

・・・だったんだけど、この ArrayDeclarationSniff.php はチェック厳しすぎたので、結局は半分くらいのチェックをコメントアウトして独自ルールとして取り込んでたり。そしたらエラーが出なくなったから、まあ一応報告しておきました、という程度。

PEAR :: Bug #14251 :: --extensions option doesn't work

どちらかというとこっちのほうが困る。CakePHP 使ってるからテンプレートファイル名が .ctp なんだけど、--extensions オプションが利かないから、サーバ上で一括チェックできるのはデフォルトの対応拡張子である .inc と .php だけという状態。

暫定対応としては CodeSniffer.php の $allowedFileExtensions に .ctp を追加してやればいいだけなんだけど、Standards 配下じゃないところに手を入れるのはちょっと抵抗あるなぁ。find コマンドかまして個別にファイル指定って手もあるけど・・・うーん。

・・・とまあ今日も本筋と関係ないところに結構時間とられてしまった。最近は裏方の仕事ばっかやってて自分の担当分が全然進んでない。この流れは早めに変えないと。
05:28:11 - miau - No comments - No Trackbacks - Permalink
| 1 |