Source for file DBWorker.class.php

Documentation is available at DBWorker.class.php

  1. /**
  2.  * Класс DBWorker.
  3.  *
  4.  * @package energine
  5.  * @subpackage core
  6.  * @author 1m.dm
  7.  * @copyright ColoCall 2006
  8.  * @version $Id: fsource_energine_core_frameworkDBWorker.class.php.html,v 1.1 2007/09/17 14:32:33 pavka Exp $
  9.  */
  10.  
  11. require_once 'core/framework/SystemConfig.class.php';
  12. require_once 'core/framework/QAL.class.php';
  13.  
  14. /**
  15.  * Предоставляет производным классам ссылку на объект для работы с БД.
  16.  *
  17.  * @package energine
  18.  * @subpackage core
  19.  * @abstract
  20.  */
  21. abstract class DBWorker extends SystemConfig {
  22.  
  23.     /**
  24.      * @access protected
  25.      * @static
  26.      * @var QAL единый для всех экземпляров класса объект QAL
  27.      */
  28.     protected static $dbhInstance;
  29.  
  30.     /**
  31.      * @access protected
  32.      * @var QAL ссылка на self::$dbhInstance (для производных классов)
  33.      */
  34.     protected $dbh;
  35.  
  36.     /**
  37.      * Конструктор класса.
  38.      *
  39.      * @access public
  40.      * @return void 
  41.      */
  42.     public function __construct({
  43.         parent::__construct();
  44.         if (!isset(self::$dbhInstance)) {
  45.             $dsn sprintf('mysql:host=%s;dbname=%s'$this->getConfigValue('database.host')$this->getConfigValue('database.name'));
  46.             self::$dbhInstance new QAL(
  47.                 $dsn,
  48.                 $this->getConfigValue('database.username'),
  49.                 $this->getConfigValue('database.password'),
  50.                 array(
  51.                     PDO::ATTR_PERSISTENT => false,
  52.                     PDO::ATTR_EMULATE_PREPARES => true,
  53.                     PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true
  54.                 )
  55.             );
  56.         }
  57.         $this->dbh = self::$dbhInstance;
  58.     }
  59.  
  60.     /**
  61.      * Возвращает перевод текстовой константы из таблицы переводов для
  62.      * указанного языка. Если язык явно не указан - используется текущий язык.
  63.      *
  64.      * @access public
  65.      * @static
  66.      * @param string $const текстовая константа
  67.      * @param int $langId язык для перевода
  68.      * @return string 
  69.      */
  70.     public static function _translate($const$langId null{
  71.         $result $const;
  72.         if (!isset($langId)) {
  73.             $langId Language::getInstance()->getCurrent();
  74.         }
  75.  
  76.         $res self::$dbhInstance->selectRequest(
  77.             'SELECT trans.ltag_value_rtf AS result FROM share_LangTags ltag '.
  78.             'LEFT JOIN share_LangTags_translation trans ON trans.ltag_id = ltag.ltag_id '.
  79.             'WHERE ltag.ltag_name = '.self::$dbhInstance->quote(strtoupper($result)).' AND lang_id = '.intval($langId)
  80.         );
  81.  
  82.         if (is_array($res)) {
  83.             $result simplifyDBResult($res'result'true);
  84.         }
  85.  
  86.         return $result;
  87.     }
  88.  
  89.     /**
  90.      * Нестатический метод-обёртка над DBWorker::_translate -
  91.      * для удобства использования внутри производных классов.
  92.      *
  93.      * @access public
  94.      * @param string $const текстовая константа
  95.      * @param int $langId язык для перевода
  96.      * @return string 
  97.      * @see DBWorker::_translate()
  98.      */
  99.     public function translate($const$langID null{
  100.         return self::_translate($const$langID);
  101.     }
  102. }

Documentation generated on Mon, 17 Sep 2007 13:27:22 +0300 by phpDocumentor 1.4.0a2