PHPの開発を8倍早くする方法
大真面目に。
var_dumpの代わりに以下の関数d(dumpのd)を使います。
function d() {
foreach (func_get_args() as $v) var_dump($v);
}
var_dump(8文字)がd(1文字)になるので8倍というわけです。単純すぎる方法ですが、タイプ量はかなり重要ですよ。実際に試してみるとわかりますが、体感できるほど快適になります。(エディタの補完機能でいいじゃんという話もありますが、それはそれで...)
ちょっとリッチなバージョンも置いておきます。
// 白背景・黒文字・等幅フォント・フォントサイズ固定・ボーダー囲み
function d() {
echo '<pre style="background:#fff;color:#333;border:1px solid #ccc;margin:2px;padding:4px;font-family:monospace;font-size:12px">';
foreach (func_get_args() as $v) var_dump($v);
echo '</pre>';
}
htmlspecialcharsもよく使うのでこれもオススメです。16倍早くなります。というかhtmlspecialcharsを数えたら16文字あることに唖然としました。
function h($str, $style = null, $charset = null) {
return htmlspecialchars($str, $style, $charset);
}
他にも再定義するとよさそうな関数はありそうですね。やりすぎは混乱の元ですが、どんな環境でも使える手法なので、おすすめですよ。
$h=htmlspecialchars;
$h($str,$style,$charset);
hの方は関数ポインタで良いと思われ。
失礼しました。
$h='htmlspecialchars';
です。
スコープが限られていれば、関数ポインタもいいですね!
(厳密には関数ポインタではなく変数の文字列で呼び出し、ですね)
print_rのリッチなやつ貼っておきますね
// デバッグ用出力関数
function p( $var, $label = FALSE ){
if( $label ){
$text = '' . $label . ' : ';
}
else{
$text = '';
}
$text.= htmlspecialchars( print_r($var,1) );
$text.= '';
$text = preg_replace( '/(Array)([\r\n])/', '$1$2', $text );
$text = preg_replace( '/ (\[.+?\]) /' , ' $1 ' , $text );
$text = preg_replace( '/ (\=\>) /' , ' $1 ', $text );
echo $text;
}
トラックバックが飛ばないのでこちらに
http://d.hatena.ne.jp/kenji-u/20070531/p1
[...] <?php function say($w) { echo $w; } $s = say; $s("tiwa"); // "tiwa"を出力 へー、こんなこと出来るのか! ref) PHPの開発を8倍早くする方法(のコメント欄) 追記あります↓ あれ、ちょっと待てよ [...]