解釈の原則のルールエンジンのRulerZの使用と実装

パッケージのダウンロード:https://github.com/K-Phoen/rulerz

作曲安装:作曲は 'kphoen / rulerz' を必要と

使用します。

RulerZ \コンパイラ\コンパイラを使用します。
RulerZ \ RulerZを使用します。
RulerZ \ターゲット\ネイティブ\ネイティブを使用します。

 パブリック関数getRulerZChecker()
    {
        $コンパイラ=コンパイラ::()を作成します。
        $ rulerz =新しいRulerZ($コンパイラ、[
            新しいネイティブ([
                '長さ' => 'strlenを'
            ]、[
                'を含む' =>関数($、$ b)は{
                    リターンのsprintf( 'はstrstr(%sは、%sの;)」)、$ bを$
                }
            )]
        )]。

        $ rulerz返します。
    }

私たちは、データの検証を検索する必要があります。

図1に示すように、ボリューム整合、

        ...あなたが知っている'、 '性別'=> 'F'、 'ポイント'=> 20]、。 ];         $ルール= "性別=:ジェンダーとポイント>:min_points";         $パラメータ= [             'min_points' => 30、             '性別' => 'M'、










        ];
        $ rulerz =の$ this - > getRulerZChecker();
        $結果= iterator_to_array(
            $ rulerz->フィルタ($ DATAS、$ルール、$パラメータ)//パラメータが空の場合は省略することができます
        )。

最終的な結果に

array(2) {
  [0]=>
  array(4) {
    ["pseudo"]=>
    string(3) "Moe"
    ["fullname"]=>
    string(18) "Moe, from the bar!"
    ["gender"]=>
    string(1) "M"
    ["points"]=>
    int(200)
  }
  [1]=>
  array(4) {
    ["pseudo"]=>
    string(5) "hazel"
    ["fullname"]=>
    string(22) "hazel, from the hazel!"
    ["gender"]=>
    string(1) "M"
    ["points"]=>
    int(100)
  }
}

図2は、データが要件を満たしているか否かが判断されます。

rulerz- $>を満たす(データ$、$ルール、$パラメータ);
//ブール値を返し、真の満足を示しています

 $データ= [ '擬似' => '萌え'、 'フルネーム' => '萌え、バーから!'、 '性別' => 'M'、 'ポイント' => 200];
        $ルール= "性別=:ジェンダーとポイント>:min_points";
        $パラメータ= [
            'min_points' => 30、
            '性別' => 'M'、
        ]。
        $ rulerz =の$ this - > getRulerZChecker();
        $結果= $ rulerz->を満たす($データ、$ルール、$パラメータ); // BOOL(真)

上記containsシステムの関数で表されるstrstr()コンパイルされたコードは、文字列によって生成されるので、$ $ bの文字含めるかどうかを判断するために、あなたが匿名を使用しなければならないので、文字列がある決意ロジック機能を、表明しました欠点の一つ。

おすすめ

転載: blog.csdn.net/qq_38234594/article/details/88570175