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