Ejemplo n.º 1
0
 /**
  * (non-PHPDoc)
  * @see Rhapsody\SetupBundle\Model\DataSource\AbstractDataSource::process()
  */
 protected function handle()
 {
     foreach ($this->data as $record) {
         $instance = $record->instantiate();
         $metadata = new ObjectMetadata();
         $metadata->setClassName(get_class($instance));
         $object = new Object($metadata);
         $object->setInstance($instance);
         $this->queue($object);
     }
     $this->populator->save();
 }
Ejemplo n.º 2
0
 public static function fromInstance($name = null, $instance)
 {
     $className = get_class($instance);
     $class = new \ReflectionClass($className);
     $metadata = new ObjectMetadata();
     $metadata->setClassName($className);
     $metadata->setName($name);
     $properties = array();
     $allProperties = \ReflectionProperty::IS_PUBLIC | \ReflectionProperty::IS_PROTECTED | \ReflectionProperty::IS_PRIVATE;
     $reflectionProperties = $class->getProperties($allProperties);
     foreach ($reflectionProperties as $prop) {
         $prop->setAccessible(true);
         $name = $prop->getName();
         $value = $prop->getValue($instance);
         $type = gettype($value) === 'object' ? get_class($value) : gettype($value);
         $propertyMeta = new PropertyMetadata();
         $propertyMeta->setName($name);
         $propertyMeta->setType($type);
         $property = new Property($propertyMeta);
         $property->setValue($value);
         array_push($properties, $property);
     }
     $object = new Object($metadata);
     $object->setInstance($instance);
     $object->setProperties($properties);
     return $object;
 }