1 <?php 2 require_once("config.php"); 3 require_once("log.php"); 4 class SQL{ //wrapper for sql engines 5 var $engine; 6 7 function SQL() { 8 $config=new Config(); 9 $conf=$config->getconfig(); 10 switch($conf["sql"]["engine"]) { 11 case "mysql": 12 require_once("mysql.php"); 13 $this->engine=new MySQL(); 14 break; 15 default: 16 $log=new Log(); 17 $log->Add("Cannot choice storage engine.'".$conf["sql"]["engine"]."' is not valuable choice"); 18 exit(1); 19 } 20 } 21 function query($query) { 22 return $this->engine->query($query); 23 } 24 function fetch() { 25 return $this->engine->fetch(); 26 } 27 function clean() { 28 return $this->engine->clean(); 29 } 30 } 31 ?>
2-3 - подключаем классы config и log, ежели их еще нет.
7-20 - конструктор класса. должен в $engine подцепить тот "низкоуровневый" интерфейс к sql, который мы пожелали.
11-14 - это если мы выбрали mysql
15-19 - так как больше никаких оберток я не писал, то в случае непонятного просто пишем в лог соообщение об ошибке и вываливаемся.
21-30 - просто тупые переадресаторы вызовов.
P.S. Да, я знаю, что 12я строка некрасива. Но зато позволит сэкономить кучу времени на интерпретацию ненужных нам классов.