HOME / コンピュータTips / スクリプト / phpのソースコードを整形する
Date: 2008/11/03 |
|
Tags: php, ソースコード, 整形, PEAR, 再帰的, recursive, リカーシブ
phpCodeBeautifierというツールがあるようで。これをみんな利用しているようだ。
Linux用なので、Solaris使いは、素直にBrandZの中で動かす。
自分はこんなスクリプトを書いた。php_normalizeと言う名前にした。
#!/bin/sh
PHPCB=/root/phpCB-1.0.1-linux/phpCB
${PHPCB} \
--space-after-if \
--space-after-switch \
--space-after-while \
--space-before-start-angle-bracket \
--extra-padding-for-case-statement \
--glue-amperscore \
--change-shell-comment-to-double-slashes-comment \
--force-large-php-code-tag \
--force-true-false-null-contant-lowercase \
--padding-char-count 4 \
--comment-rendering-style PEAR \
--optimize-eol \
$*
マニュアルに非常に細かく例があるので、それを見ればだいたいことが足りる。
問題は、これは単なるフィルタなので、再帰的に行うためにはどうするか。
即席だが、要は足りる。filterと言う名前にした。
#!/usr/bin/perl -w
use strict;
my @line=@ARGV;
my $orig=$line[-1];
pop(@line);
my $lines=join(" ",@line);
my $new=$orig.'.bak';
rename($orig,$new);
my $arg="$lines $new > $orig";
print $arg."\n";
if(system($arg)){
unlink($orig);
rename($new,$orig);
}
こんな風に使う。
find ./ -type f -name '*.php' \ | xargs -n1 ./filter ./php_normalize
以上、あとはbakを消す。こんな感じ。
find ./ -type f -name '*.bak' -exec rm \{\} \;