考えがある。次のような単純なコードを記述して、多くの変数に基づいて価格を指定する機能をクライアントに提供したいと考えています。
if customer.zip is "37208"
return 39.99
else
return 59.99
私のコードでは、次のようにします。
try {
$variables = array('customer' => array('zip' => '63901'));
$code = DSL::parse(DSL::tokenize($userCode))
$returnValue = DSL::run($code, $variables);
} catch (SyntaxErrorException $e) {
...
}
私が望んでいるのは、PHP で単純な DSL を作成することだと思います。これにより、顧客は価格を非常に柔軟に設定できるようになり、すべてのケースでコードを作成する必要がなくなります。
基本的な考え方は次のとおりです。
- 変数の配列と顧客が作成したコードを提供します。
- パーサーは、提供された変数を使用してユーザーが記述したコードを評価し、顧客が返した値を返します。構文エラーなどの例外がスローされます。
- 次に、返された値をアプリケーションの通常のロジックで使用します。
PHP で単純な DSL を構築するためのリソースやフレームワークを知っていますか? どこから始めればよいですか?
ありがとう!