HOME / コンピュータTips / スクリプト / phpのソースコードを整形する

Date: 2008/11/03 |  このエントリーをはてなブックマークに追加  |  Tags: php, ソースコード, 整形, PEAR, 再帰的, recursive, リカーシブ

phpのソースコードをPEAR風に整形する

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 \{\} \;