Esempio n. 1
0
 /**
  * Get entity associations values
  *
  * @param mixed $entity
  * @return array
  */
 public function getAssociationsValues(&$entity)
 {
     $ref = new PropertyReflection($this->entity, '_associations');
     $ref->setAccessible(TRUE);
     $associations = $ref->getValue($entity);
     $ref->setAccessible(FALSE);
     $data = array();
     foreach ($this->associations as $association) {
         if (!array_key_exists($association->name, $associations) || $associations[$association->name] instanceof Associations\LazyLoad) {
             continue;
         }
         if (is_array($associations[$association->name]) || $associations[$association->name] instanceof \ArrayAccess) {
             $data[$association->name] = array_keys($associations[$association->name]);
         } elseif (empty($associations[$association->name])) {
             $data[$association->name] = NULL;
         } else {
             $data[$association->name] = Metadata::getMetadata(get_class($associations[$association->name]))->getPrimaryKeyValue($associations[$association->name]);
         }
     }
     return $data;
 }
Esempio n. 2
0
 public function testGetInstance2()
 {
     $data = new FooEntity();
     $propRef = new PropertyReflection('ActiveMapperTests\\MetaData\\FooEntity', 'text');
     $propRef->setAccessible(TRUE);
     $propRef->setValue($data, "Test text");
     $propRef->setAccessible(FALSE);
     $this->assertEquals($data, Metadata::getMetadata('ActiveMapperTests\\MetaData\\FooEntity')->getInstance(\ActiveMapper\Manager::getManager(), array('text' => "Test text")));
 }
Esempio n. 3
0
 /**
  * @return Nette\Reflection\PropertyReflection
  */
 public function getProperty($name)
 {
     return PropertyReflection::import(parent::getProperty($name));
 }