Example #1
0
 public function testConversion()
 {
     // print_r($chain->rules);
     // Test rule count
     $this->assertCount(2, $this->chain->rules);
     // Test class conversion
     $this->assertTrue($this->chain->rules[0] instanceof \CF\RuleChains\SQL);
     $sth = ConnectionsRC::getConnection("SQL", "localhost")->prepare("SELECT * FROM account");
     $sth->execute();
     // print_r($sth->fetchAll());
 }
Example #2
0
 public function __construct($config, array $rules, $input = [], $parseRules = true)
 {
     if (isset($config)) {
         ConnectionsRC::setConfig($config);
     }
     if ($parseRules) {
         $this->rules = \array_map(function ($r) use($input) {
             $class = "\\CF\\RuleChains\\" . (isset($r['type']) ? in_array($r['type'], ["SQL"]) ? $r['type'] : "SQL" : "SQL");
             $rule = new $class();
             foreach (\array_keys(\get_class_vars("\\CF\\RuleChains\\" . $r['type'])) as $key) {
                 if (isset($r[$key])) {
                     switch ($key) {
                         case "executeType":
                             $rule->setExecuteType($r[$key]);
                             break;
                         case "resultType":
                             $rule->setResultType($r[$key]);
                             break;
                         case "linkType":
                             $rule->setLinkType($r[$key]);
                             break;
                         case "outputReorder":
                             $rule->setOutputReorder($r[$key]);
                             break;
                         case "inputReorder":
                             $rule->setInputReorder($r[$key]);
                             break;
                         default:
                             $rule->{$key} = $r[$key];
                             break;
                     }
                     $rule->input = $input;
                 }
             }
             return $rule;
         }, $rules);
     } else {
         $this->rules = \array_map(function ($r) use($input) {
             $r->input = $input;
             return $r;
         }, $rules);
     }
 }