Exemplo n.º 1
0
 /**
  * @param object   $object
  * @param Metadata $metadata
  * @return array
  */
 public function toArray($object, Metadata $metadata)
 {
     $reflClass = new \ReflectionClass(get_class($object));
     $data = array();
     foreach ($reflClass->getProperties() as $property) {
         $mapping = $metadata->getPropertyMapping($property->getName());
         if (null == $mapping) {
             continue;
         }
         $property->setAccessible(true);
         if ($mapping['type'] == DataTypes::COLLECTION || DataTypes::HASH == $mapping['type']) {
             foreach ((array) $property->getValue($object) as $key => $value) {
                 $data[$mapping['name'] . ':' . $key] = $value;
             }
         } else {
             $data[$mapping['name']] = $this->reverseTransformValue($mapping['type'], $property->getValue($object));
         }
     }
     return $data;
 }
Exemplo n.º 2
0
 public function testSetState()
 {
     $data = array('id' => 1, 'prefix' => 'some_', 'indexes' => array('index1', 'index2'), 'sortedIndexes' => array('sortedIndex1', 'sortedIndex2'), 'propertyMappings' => array(array('name' => 'property', 'type' => 'string')));
     $metadata = Metadata::__set_state($data);
     assertInstanceOf('Tystr\\RedisOrm\\Metadata\\Metadata', $metadata);
     assertEquals($data['id'], $metadata->getId());
     assertEquals($data['prefix'], $metadata->getPrefix());
     assertEquals($data['indexes'], $metadata->getIndexes());
     assertEquals($data['sortedIndexes'], $metadata->getSortedIndexes());
     assertEquals($data['propertyMappings'], $metadata->getPropertyMappings());
 }
Exemplo n.º 3
0
 /**
  * @param ReflectionClass $reflClass
  * @param Metadata        $metadata
  *
  * @return string|int
  */
 protected function getIdForClass($object, Metadata $metadata)
 {
     $getter = 'get' . ucfirst(strtolower($metadata->getId()));
     if (!method_exists($object, $getter)) {
         throw new \RuntimeException(sprintf('The class "%s" must have a "%s" method for accessing the property mapped as the id field (%s)', get_class($object), $getter, $metadata->getId()));
     }
     return $object->{$getter}();
 }
Exemplo n.º 4
0
 /**
  * @param Metadata $metadata
  * @return array
  */
 protected function validateMetadata(Metadata $metadata)
 {
     $errors = array();
     if (null == $metadata->getId()) {
         $errors[] = 'Id cannot be null.';
     }
     if (null == $metadata->getPrefix()) {
         $errors[] = 'Prefix cannot be null.';
     }
     return $errors;
 }