/** * {@inheritdoc} */ public function fill(Builder $builder) { if (Util::isUserClass($builder->getClass())) { $refl = new \ReflectionClass($builder->getClass()); $filter = \ReflectionProperty::IS_PRIVATE | \ReflectionProperty::IS_PUBLIC | \ReflectionProperty::IS_PROTECTED; foreach ($refl->getProperties($filter) as $property) { if ($this->isPropertyAccessible($property->getName(), $refl)) { $this->makeField($property, $builder); } } } }
public function fill(Builder $builder) { $manager = null; if (Util::isUserClass($builder->getClass())) { $manager = $this->registry->getManagerForClass($builder->getClass()); if (null !== $manager) { try { $metadata = $manager->getClassMetadata($builder->getClass()); if ($metadata instanceof ClassMetadata) { $this->process($metadata, $builder); } } catch (MappingException $e) { } } } }
/** * {@inheritdoc} */ public function fill(Builder $builder) { $class = $builder->getClass(); if (Util::isUserClass($class) && class_exists($class, true)) { $refl = new \ReflectionClass($class); /** @var Annotations\Dogma $annot */ $annot = $this->reader->getClassAnnotation($refl, 'Bravesheep\\Dogmatist\\Guesser\\Annotations\\Dogma'); if (null !== $annot) { $builder->setStrict($annot->strict); } $this->processConstructor($refl, $builder); $this->processFields($refl, $builder); } }
/** * @param \ReflectionClass $refl * @param Builder $builder * @return object * @throws SampleException */ private function constructObject(\ReflectionClass $refl, Builder $builder) { $constructor = $refl->getConstructor(); $obj = null; if (null === $constructor || $constructor->getNumberOfParameters() === 0) { $obj = $refl->newInstance(); } elseif ($constructor) { if (!$builder->hasConstructor() && $constructor->getNumberOfRequiredParameters() === 0) { $obj = $refl->newInstance(); } elseif ($builder->hasConstructor()) { $args = $this->alignArgs($constructor, $this->sample($builder->constructor()), $builder->constructor()); $obj = $refl->newInstanceArgs($args); } } if (null === $obj && !$builder->isStrict()) { $obj = $refl->newInstanceWithoutConstructor(); } elseif (null === $obj) { throw new SampleException("Constructor required for constructing {$builder->getClass()} in strict mode"); } return $obj; }