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()); }
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); } }