public function testSerializeFailsIfNotSerializable()
 {
     $data = new NotSerializable();
     try {
         Serializer::serialize($data);
         $this->fail('Expected a SerializationFailedException');
     } catch (SerializationFailedException $e) {
     }
     $this->assertTrue(true, 'Exception caught');
 }
Esempio n. 2
0
 /**
  * {@inheritdoc}
  */
 public function set($key, $value)
 {
     KeyUtil::validate($key);
     $serialized = Serializer::serialize($value);
     try {
         $this->client->bucket($this->bucketName)->newBinary($key, $serialized)->store();
     } catch (Exception $e) {
         throw WriteException::forException($e);
     }
 }
 /**
  * {@inheritdoc}
  */
 public function set($key, $value)
 {
     KeyUtil::validate($key);
     $serialized = Serializer::serialize($value);
     try {
         $this->clientSet($key, $serialized);
     } catch (Exception $e) {
         throw WriteException::forException($e);
     }
 }
Esempio n. 4
0
 private function doUpdate($key, $value)
 {
     $serialized = Serializer::serialize($value);
     try {
         $this->connection->update($this->tableName, array('meta_value' => $serialized), array('meta_key' => $key));
     } catch (Exception $e) {
         throw WriteException::forException($e);
     }
 }
Esempio n. 5
0
 public function __construct(Collection $collection, $flags = 0)
 {
     $this->collection = $collection;
     if ($flags & self::NO_SERIALIZE) {
         if ($flags & self::SUPPORT_BINARY) {
             $this->serialize = function ($unserialized) {
                 if (!is_string($unserialized)) {
                     throw UnsupportedValueException::forValue($unserialized, $this);
                 }
                 return new Binary($unserialized, Binary::TYPE_GENERIC);
             };
             $this->unserialize = function (Binary $serialized) {
                 return $serialized->getData();
             };
         } else {
             $this->serialize = function ($unserialized) {
                 if (!is_scalar($unserialized) && !is_array($unserialized) && null !== $unserialized) {
                     throw UnsupportedValueException::forValue($unserialized, $this);
                 }
                 return $unserialized;
             };
             $this->unserialize = function ($serialized) {
                 return $serialized;
             };
         }
     } else {
         if ($flags & self::SUPPORT_BINARY) {
             $this->serialize = function ($unserialized) {
                 return new Binary(Serializer::serialize($unserialized), Binary::TYPE_GENERIC);
             };
             $this->unserialize = function (Binary $serialized) {
                 return Serializer::unserialize($serialized->getData());
             };
         } else {
             $this->serialize = function ($unserialized) {
                 return Serializer::serialize($unserialized);
             };
             $this->unserialize = function ($serialized) {
                 return Serializer::unserialize($serialized);
             };
         }
     }
 }
 private function serializeValue($value)
 {
     // Serialize if we have a string and string serialization is enabled...
     $serializeValue = is_string($value) && !($this->flags & self::NO_SERIALIZE_STRINGS) || is_array($value) && !($this->flags & self::NO_SERIALIZE_ARRAYS) || null !== $value && !is_scalar($value) && !is_array($value);
     if ($serializeValue) {
         return Serializer::serialize($value);
     }
     // If we have an array and array serialization is disabled, serialize
     // its entries if necessary
     if (is_array($value)) {
         return array_map(array($this, 'serializeValue'), $value);
     }
     return $value;
 }