Source for file stdio.classe.php

Documentation is available at stdio.classe.php

  1. <?php
  2.     /**
  3.      * stdio.classe.php
  4.      * 
  5.      * Funções inespecíficas utilizadas em todo o sistema.
  6.      *
  7.      * @copyright 2008 Soomp
  8.      * @author Marcio Merlone <mmerlone@gmail.com>
  9.      * @version 1.0
  10.      * @since 18/01/2007
  11.      * @package Soomp
  12.      */
  13.     /* $Id: stdio.classe.php,v 1.8 2007/05/10 19:17:43 mmerlone Exp $ */
  14.  
  15.     /**
  16.      * Funções relativas a entrada/saída de dados (db X browser)
  17.      */
  18.     class stdio{
  19.         /**
  20.          * @var string $strOrigem armazena a origem da requisicao [index|ajax|soap]
  21.          */
  22.         protected $strOrigem;
  23.         /**
  24.          * @var object $smarty armazena o objeto smarty
  25.          */
  26.         public $smarty;
  27.         /**
  28.          * @var object $db armazena o objeto de conexão do banco de dados ADODB
  29.          */
  30.         public $db;
  31.         /**
  32.          * @var object $db armazena o objeto de conexão do banco de dados ADODB para usuários
  33.          */
  34.         public $dbUser;
  35.         /**
  36.          * @var object $instance instância da classe
  37.          */
  38.         private static $instance null;
  39.  
  40.         /**
  41.          * Construtor
  42.          */
  43.         public function __construct(){}
  44.  
  45.         /**
  46.          * Overload de propriedades privadas
  47.          * @param string $var nome da propriedade
  48.          * @param mixed $value valor da propriedade
  49.          */
  50.         private function __set($var$value){
  51.             $this->$var $value;
  52.         }
  53.         
  54.         /**
  55.          * Overload de propriedades privadas
  56.          * @param string $var nome da propriedade
  57.          * @return mixed valor da propriedade
  58.          */
  59.         private function __get($var){
  60.             return $this->$var;
  61.         }
  62.  
  63.         /**
  64.          * Singleton - retorna uma instância do objeto
  65.          */
  66.         public static function getInstance(){
  67.             if (self::$instance == null){
  68.                 self::$instance new stdio();
  69.             }
  70.             return self::$instance;
  71.         }
  72.  
  73.         /**
  74.          * Armazena as mensagens do sistema para exibição no outputFoot
  75.          * Se definido $classe for integer não exibe a mensagem no div correpondente,
  76.          * mas executa trigger_error.
  77.          * <code>
  78.          * $this->msgs = array(0 => array('id'     => 234,
  79.          *                                'value'  => 'Sentença com duas variáveis: $usuario e $data',
  80.          *                                'classe' => 'sucesso',
  81.          *                                'vars'   => array('usuario' => 'Usuario da Silva',
  82.          *                                                  'data'    => '02/01/2007')
  83.          *                               ),
  84.          *                     1 => array(....));
  85.          * </code>
  86.          *  
  87.          * @param integer $id PK da string com a mensagem no db de idiomas
  88.          * @param string $value string com a mensagem não internacionalizada
  89.          * @param mixed $classe classe do css a utilizar nesta mensagem ou a constante
  90.          *  respectiva de erro [E_USER_ERROR|E_USER_WARNING|E_USER_NOTICE]
  91.          * @param array $vars variáveis a serem substituídas na mensagem
  92.          * @link http://us2.php.net/manual/en/ref.errorfunc.php#errorfunc.constants
  93.          */
  94.         protected function msg($id$value$classe$vars array()){
  95.             if(is_int($classe)){
  96.                 trigger_error($value$classe);
  97.             }else{
  98.                 if(!is_int($id)){
  99.                     $this->msg(0'msg: id deve ser inteiro.'E_USER_WARNING);
  100.                 }elseif(!is_string($value)){
  101.                     $this->msg(0'msg: value deve ser string.'E_USER_WARNING);
  102.                 }elseif(!is_string($classe)){
  103.                     $this->msg(0'msg: classe deve ser string.'E_USER_WARNING);
  104.                 }else{
  105.                     if(!isset($_SESSION['msgs']|| !is_array($_SESSION['msgs'])) $_SESSION['msgs'array();
  106.                     array_push($_SESSION['msgs']array('id' => $id'value' => $value'classe' => $classe'vars' => $vars));
  107.                 }
  108.             }
  109.         }
  110.  
  111.         /**
  112.          * Instancia o objeto smarty para a requisição se $this->origem == 'index'
  113.          * @param string $template_dir diretório para templates
  114.          * @return boolean True se necessário utilizar o smarty e o objeto estiver instanciado em $this->smarty.
  115.          */
  116.         public function _smarty($template_dir null){
  117.             if($this->_setOrigem()){
  118.                 if($this->strOrigem == 'index'){
  119.                     return $this->_setSmarty($template_dir);
  120.                 }elseif($this->strOrigem == 'ajax'){
  121.                     // ??
  122.                     return false// (?)
  123.                 }
  124.             }else{
  125.                 $this->msg(0'_smarty: origem indefinida.'E_USER_ERROR);
  126.             }
  127.             return false;
  128.         }
  129.  
  130.         /**
  131.          * Instancia o smarty
  132.          * @param string $template_dir diretório para templates
  133.          * @return boolean se existe o objeto $this->smarty
  134.          */
  135.         private function _setSmarty($template_dir null){
  136.             if(!isset($this->smarty|| !is_object($this->smarty)){
  137.                 require_once(CFG_LOCAL_FRAMEWORK.'sm.classe.php');
  138.                 $this->smarty = &sm::getInstance($template_dir);
  139.             }
  140.             $this->smarty->setTemplateDir($template_dir);
  141.             return is_object($this->smarty);
  142.         }
  143.  
  144.         /**
  145.          * Faz a conexão com o banco de dados
  146.          * @return object conexão com o banco de dados
  147.          * @uses CFG_DB_HOST
  148.          * @uses CFG_DB_USER
  149.          * @uses CFG_DB_PASS
  150.          * @uses CFG_DB_DRV
  151.          * @uses CFG_DB_DB
  152.          */
  153.         public function _db(){
  154.             if(!isset($this->db|| !is_object($this->db|| !$this->db->_connectionID){
  155.                 $conn $this->_getDb(CFG_DB_DRVCFG_DB_HOSTCFG_DB_USERCFG_DB_PASSCFG_DB_DB);
  156.                 if($conn){
  157.                     $this->db = $conn;
  158.                     $this->db->debug CFG_DB_DEBUG true false;
  159.                 }else{
  160.                     trigger_error('_db: Dados para conexão com banco de dados inválidos.'E_USER_WARNING);
  161.                     return false;
  162.                 }
  163.             }
  164.             return true;
  165.         }
  166.  
  167.         /**
  168.          * Faz a conexão com o banco de dados de usuários
  169.          * @return object conexão com o banco de dados de usuários
  170.          * @uses CFG_USUARIO_DB_HOST
  171.          * @uses CFG_USUARIO_DB_USER
  172.          * @uses CFG_USUARIO_DB_PASS
  173.          * @uses CFG_USUARIO_DB_DRV
  174.          * @uses CFG_USUARIO_DB_DB
  175.          */
  176.         public function _dbUser(){
  177.             if(!isset($this->dbUser|| !is_object($this->dbUser|| !$this->dbUser->_connectionID){
  178.                 $conn $this->_getDb(CFG_USUARIO_DB_DRVCFG_USUARIO_DB_HOSTCFG_USUARIO_DB_USERCFG_USUARIO_DB_PASSCFG_USUARIO_DB_DB);
  179.                 if($conn){
  180.                     $this->dbUser = $conn;
  181.                     $this->dbUser->debug CFG_DB_DEBUG true false;
  182.                 }else{
  183.                     trigger_error('_dbUser: Dados para conexão com banco de dados de usuário inválidos.'E_USER_WARNING);
  184.                     return false;
  185.                 }
  186.             }
  187.             return true;
  188.         }                  
  189.  
  190.         /**
  191.          * Instancia o objeto adodb
  192.          * @param string $driver tipo de banco de dados cfme. CFG_DB_DRV
  193.          * @param string $host nome do host de banco de dados cfme. CFG_DB_HOST
  194.          * @param string $user nome do usuário cfme. CFG_DB_USER
  195.          * @param string $pass senha cfme. CFG_DB_PASS
  196.          * @param string $db nome do database cfme. CFG_DB_DB
  197.          * @param string $sid caso Oracle cfme. CFG_DB_SID
  198.          */
  199.         private function _getDb($driver$host$user$pass$db$sid null){
  200.  
  201.             require_once(CFG_LOCAL_FRAMEWORK.'adodb/adodb.inc.php');
  202.             /*if(CFG_USUARIO_DB_SID == ''){
  203.                 $dsn = CFG_USUARIO_DB_DRV.'://'.CFG_USUARIO_DB_USER.':'.CFG_USUARIO_DB_PASS.'@'.CFG_USUARIO_DB_HOST.'/'.CFG_USUARIO_DB_DB.'?persist';
  204.             }else{
  205.                 $dsn = CFG_USUARIO_DB_DRV.'://'.CFG_USUARIO_DB_USER.':'.CFG_USUARIO_DB_PASS.'@'.CFG_USUARIO_DB_HOST.'/'.CFG_USUARIO_DB_SID.'?persist';
  206.             }
  207.             $conn = ADONewConnection($dsn);*/
  208.             $conn ADONewConnection($driver);
  209.             $conn->forceNewConnect true;
  210.             $conn->NConnect($host$user$pass$db);
  211.             if(is_object($conn)){
  212.                 return $conn;
  213.             }
  214.             return false;
  215.         }
  216.  
  217.         /**
  218.          * Define $this->strOrigem
  219.          */
  220.         private function _setOrigem(){
  221.             if(defined('INDEX')){
  222.                 $this->strOrigem = 'index';
  223.             }elseif(defined('AJAX')){
  224.                 $this->strOrigem = 'ajax';
  225.             }elseif(defined('SOAP')){
  226.                 $this->strOrigem = 'soap';
  227.             }else{
  228.                 $this->msg(0'requisicao: origem inadequada.'E_USER_ERROR);
  229.                 return false;
  230.             }
  231.             return true;
  232.         }
  233.  
  234.     }
  235. ?>

Documentation generated on Sun, 09 Mar 2008 23:53:33 -0300 by phpDocumentor 1.4.0

SourceForge.net Logo Support This Project