示例#1
0
 /**
  * @param PersistConfig $config
  * @return SoapClient
  * @throws PersistException
  * */
 protected function _connect(PersistConfig $config)
 {
     try {
         $paramArray = array('local_cert' => $config->get('certificate'), 'proxy_host' => $config->get('proxyhost'), 'proxy_port' => $config->get('proxyport'), 'proxy_login' => $config->get('username'), 'proxy_password' => $config->get('password'), 'trace' => 1);
         # Retornar em XML
         $resource = new \SoapClient($config->getDSN(), $paramArray);
         $this->_config = $config;
         return $resource;
     } catch (\Exception $ldape) {
         # @todo da mesma forma do PDO guardar log para o LDAP
         throw new PersistException($ldape->getMessage(), $ldape->getCode());
     }
 }
示例#2
0
 /**
  * {@inheritdoc}
  * */
 protected function _connect(PersistConfig $config)
 {
     try {
         $resource = new \PDO($config->getDSN(), $config->get('username'), $config->get('password'));
         # throws exception if anything goes wrong
         # only works with MySQL 4.x
         $resource->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
         # get values as objects
         $resource->setAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE, \PDO::FETCH_OBJ);
         # column names aways lowercase
         $resource->setAttribute(\PDO::ATTR_CASE, \PDO::CASE_LOWER);
         return $resource;
     } catch (\PDOException $pdoe) {
         # @todo um log com o error do PDO devera ser guardo
         throw new PersistException($pdoe->getMessage(), $pdoe->getCode());
     }
 }
示例#3
0
 /**
  * Fábrica de Persist.
  * @example Persist::factory
  * @code
  * <?php
  *     ...
  *     Persist::factory('\lib\Persist', $persistConfig);
  *     ...
  * ?>
  * @endcode
  * @param [string | Model] $namespace
  * @param  PersistConfig $config
  * @return Persist
  * @throws PersistException
  * */
 public static function factory($namespace = NULL, PersistConfig $config)
 {
     if (is_string($namespace)) {
         self::exists($namespace, TRUE);
         return new $namespace($config);
     }
     PersistException::throwsExceptionIfParamIsNull($namespace instanceof ModelAbstract, self::PERSIST_NAMESPACE_OR_MODEL_REQUIRED);
     # get the funcionality namespace
     $tmpNSFunc = current(explode(self::NAMESPACE_SEPARATOR . 'mvcb', $namespace->getNamespace()));
     $arrNS = explode(self::NAMESPACE_SEPARATOR, $tmpNSFunc);
     # get the funcionality name
     $tmpFuncy = end($arrNS);
     $tpl = '%1$s%2$spersist%2$s%3$s%2$s%4$sPersist';
     $namespace = sprintf($tpl, $tmpNSFunc, self::NAMESPACE_SEPARATOR, $config->get('adapter'), ucfirst($tmpFuncy));
     self::exists($namespace, TRUE);
     # instancia o ModuleDatabasePersist
     $tmpPersist = new $namespace($config);
     return $tmpPersist;
 }
示例#4
0
 /**
  * Fábrica de Connect.
  *
  * @param PersistConfig $config
  * @return Connect
  * @throws PersistException
  * */
 public static function factory(PersistConfig $config)
 {
     $hash = $config->hash();
     if (!isset(self::$_instance[$hash])) {
         $namespace = sprintf('%1$s%2$s%3$s%2$sConnect', __NAMESPACE__, self::NAMESPACE_SEPARATOR, $config->get('driver'));
         self::$_instance[$hash] = new $namespace($config);
     }
     return self::$_instance[$hash];
 }
示例#5
0
 /**
  * Método que efetua a conexão com o serivdor Ldap.
  *
  * @param persistConfig $config
  * @throws PersistException
  * @see Parent::_connect()
  * */
 protected function _connect(PersistConfig $config)
 {
     try {
         $resource = ldap_connect($config->getDSN());
         $this->_config = $config;
         # Seto parametros de acordo com a versão do LDAP
         ldap_set_option($resource, LDAP_OPT_PROTOCOL_VERSION, $config->get('version'));
         # Seta se as referências segue a biblioteca LDAP e retornadas por servidores LDAP.
         ldap_set_option($resource, LDAP_OPT_REFERRALS, 0);
         return $resource;
     } catch (\Exception $exc) {
         throw new PersistException($exc->getMessage(), $exc->getCode());
     }
 }
示例#6
0
 /**
  * Fábrica Connect
  *
  * @param PersistConfig $config
  * @return \br\gov\sial\core\persist\Connect
  * @throws PersistException
  * */
 public static function factory(PersistConfig $config)
 {
     $hash = $config->hash();
     $tmpID = $config->hash();
     if (FALSE === isset(self::$_instance[$tmpID])) {
         $namespace = sprintf('\\br\\gov\\sial\\core\\persist\\%s\\Connect', $config->get('adapter'));
         self::$_instance[$tmpID] = $namespace::factory($config);
     }
     return self::$_instance[$tmpID];
 }