ボリスは、小さくても信頼性の高いphp用のREPLです。

Python、ruby、clojureにはREPLがあります。 REPL-read-eval-printループ。 擬似コードでREPLが何であるかを説明すると、次のようになります。
while(true){ echo eval($input->get()); } 

このような実装により、開発者はファイルを作成せずにコードを自由に試すことができます。 ミスを犯す可能性があります。ボリスはこれに関するメッセージを表示しますが、新しいコードを待って動作し続けます。

画像

必要条件



設置


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に追加します。

リポジトリへのリンク。

Source: https://habr.com/ru/post/J179145/


All Articles