Example #1
0
 /**
  * Write registry key to database.
  * 
  * @param integer $userid
  * @param string $registrykey
  * @param string $string
  * @param string $type
  * @param mixed $value
  * @return boolean
  */
 public function RegistryWrite($userid, $registrykey, $name, $type, $value)
 {
     // value = default key value?
     if ($userid != 0) {
         $result = $this->RegistryRead(0, $registrykey, $name, $type);
         if ($result) {
             if ($result == $value) {
                 // equals default value, delete own key
                 return $this->RegistryDelete($userid, $registrykey, $name, $type);
             }
         }
     }
     // convert value to string
     switch ($type) {
         case 'd':
         case 'dat':
         case 'date':
         case 't':
         case 'tim':
         case 'time':
             if ($value instanceof \DateTime) {
                 // convert DateTime to string
                 $value = $value->format("c");
             } else {
                 if (is_int($value)) {
                     // nothing to do
                 } else {
                     if (is_string($value)) {
                         // nothing to do
                     }
                 }
             }
             break;
         default:
     }
     // not default key, insert / update
     if ($this->isModeRedis()) {
         //return $this->redis->set($this->redis_prefix . (string)$userid . $this->redis_key_name_delimiter . $registrykey . $this->redis_key_name_delimiter . $name, $value);
         return $this->redis->hSet($this->redis_prefix . (string) $userid, $registrykey . $this->redis_key_name_delimiter . $name . $this->redis_key_name_delimiter . $type, $value);
     } else {
         if ($this->isModeDoctrine()) {
             $entity = $this->registry->findOneBy(array('userid' => $userid, 'registrykey' => $registrykey, 'name' => $name));
             if (!$entity) {
                 $entity = new RegKey();
                 $entity->setUserid($userid);
                 $entity->setRegistryKey($registrykey);
                 $entity->setName($name);
             }
             $entity->setType($type);
             $entity->setValue($value);
             $this->em->persist($entity);
             $this->em->flush();
             return !is_null($entity);
         }
     }
 }