PHPのおべんきょー用対話環境ほしい。
PHPよくわからんで、対話環境とか欲しーなあ思ったけど見あたらんかった。なのででっちあげた。こんな動作。
% phpterm.pl php> $x = "hoge"; php> $y = $x . "\n"; php> echo $y; hoge php>
ただ毎回php -r inputやってるだけ。超てきとう、どころじゃないぐらいてきとう。
php> echo "hoge\n"; hoge php> echo "fuga\n"; hoge fuga php> list echo "hoge\n"; echo "fuga\n"; php> clear php> list php>
こんなことなるし。入力されてるプログラムを出力するコマンドlist、プログラムをリセットするコマンドclearとかだけ適当に仕込む。ソースはPerlで以下。Term::ReadLineべんりだった。
#!/usr/bin/perl -w use strict; use Term::ReadLine; my $term = new Term::ReadLine 'PHP Terminal Modoki'; my $prompt = "php> "; my $OUT = $term->OUT || \*STDOUT; my @phpcmd = ("php","-r"); my $phpsrc = ""; my %funtable; $funtable{"clear"} = sub{$phpsrc = "";}; $funtable{"list"} = sub{print $OUT "$phpsrc\n";}; $funtable{"help"} = sub{print"$_" for keys %funtable;}; while(defined(my $line = $term->readline($prompt))){ chomp $line; if(exists($funtable{$line})){ $funtable{$line}(); } elsif($line =~ /\S/){ $phpsrc .= $line . "\n"; (system @phpcmd, $phpsrc) == 0 or exit 1; } $term->addhistory($line) if $line =~ /\S/; }