Python、ruby、clojureにはREPLがあります。 REPL-read-eval-printループ。 擬似コードでREPLが何であるかを説明すると、次のようになります。
while(true){ echo eval($input->get()); }
このような実装により、開発者はファイルを作成せずにコードを自由に試すことができます。 ミスを犯す可能性があります。ボリスはこれに関するメッセージを表示しますが、新しいコードを待って動作し続けます。
必要条件
- PHP> = 5.3
- readline関数
- PCNTL関数
- POSIX関数
設置
Borisは作曲家から入手できます。
composer require d11wtq/boris dev-master
または昔ながらの方法:
git clone git://github.com/d11wtq/boris.git cd boris ./bin/boris
使用する
Borisを起動すると、招待状が表示されます。
boris>
何かを書いてみてください、ボリスはそれを処理して結果を出します。 長い複数行の式がある場合、Borisはそれをまとめて実行します。 操作をキャンセルするには、
ctrl + c
使用し
ctrl + c
。 デフォルトでは、すべての結果は
var_dump
関数によって
var_dump
れます
var_dump
boris> $x = 1; int(1) boris> $y = 2; int(2) boris> "x + y = " . ($x + $y); string(9) "x + y = 3" boris> exit;
ユーティリティを終了するには、
ctrl + D
使用します
ctrl + D
プロジェクトで使用する
すべてが非常に簡単です:
require_once 'lib/autoload.php'; $boris = new \Boris\Boris('myapp> '); $boris->setLocal(array('appContext' => $appContext)); $boris->start();
ここで、ユーティリティは、Borisから利用可能なグローバル変数
appContext
初期化されます。
ユーティリティを開始する前にコールバックを追加することができます。 それらを追加するには2つのオプションがあります。
$boris->onStart('$foo = 42; $bar = 2; echo "Hello Boris!\n";'); $boris->onStart(function($worker, $scope){ extract($scope); echo '$foo * $bar = ' . ($foo * $bar) . "\n"; $worker->setLocal('name', 'Chris'); });
最初に、ボリスが
eval
を介して単純に実行するコード行を渡します。 次に、コールバックを実行します。コールバックは、Borisのスコープからデータをエクスポートし、それらのアクションを実行してから、
$name
変数をBorisに追加します。
リポジトリへのリンク。