PHPインタラクティブコンソール

この考えは表面にありますが、私がこのことを示したほとんどの人は驚いて、彼らにリンクを与えるように頼みました。 アイデアは単純ですが、ほとんどの人がstdinとreadlineを知っています。



したがって、インタラクティブコンソールはシンプルで非常に便利です。 履歴とオートコンプリート。



そんななこと



ただし、3つの質問と2つの問題があります。



1)ウィンドウ。 Windowsにはreadlineはなく、それぞれオートコンプリートはありません。 標準入力のみ。 彼のために、ラッパーは書かれていますが、残念ながら色のESCシーケンスは機能しません(ただし、修正する必要があります)。



2)readline + libedit / libreadline。 (できれば、むしろ)インストールする必要があります。 最後のライブラリが既に所有している場合(そうでない場合は、emerge libeditコマンドを使用してインストールします)、 readline php拡張をビルドする必要があります。 これは次のように行われます:cd php-5.xx / ext / readline && phpize && ./configure && make && make install



3)私は個人的にlibeditを設定しなければなりませんでした。 ファイル〜/ .editrcはこのように見えます:



bind "^R" em-inc-search-prev

bind "^[O5C" vi-next-word

bind "^[O5D" vi-prev-word

bind "^[[1~" ed-move-to-beg

bind "^[[4~" ed-move-to-end

bind "^[[3~" ed-delete-next-char









次に問題について。 1つ目は、eval内のコードは解析エラーで制御できるが、致命的なエラーでは制御できないことです。 したがって、致命的なエラーが発生すると、コンソール全体がクラッシュします。 公平に言えば、致命的なエラーが発生したのは数回だけで、ほとんどのエラーは通知エラーまたは解析エラーです。



2番目の問題は、曲線補完ライン拡張です。これは、オートコンプリート機能からの「オプションなし」という回答を受け入れません。 私はそれを克服できませんでした、そして今、文字を入力せずにすぐにまたはスペースの後にTabを押すと、ファイルのリストが表示され、これが時々干渉します。

しかし、全体として、このようなコンソールは非常に便利です。



ソースはGoogleコード上にあります



PS(退屈している人向け): for ($i='a';$i<='z';$i++) echo $i.' ';



printsの文字列 for ($i='a';$i<='z';$i++) echo $i.' ';






All Articles