/** * @param \Phpro\AnnotatedForms\Event\FormEvent $event * @param \Zend\Form\Form $form * @param \Phpro\AnnotatedForms\Options\Configuration $configuration */ public function it_should_attach_an_entity_as_object($event, $form, $configuration) { $event->getTarget()->willReturn($form); $event->getConfiguration()->willReturn($configuration); $configuration->getEntity()->willReturn('stdClass'); $form->setObject(Argument::type('stdClass'))->shouldBeCalled(); $this->setEntityAsObject($event); }
/** * @param FormEvent $e */ public function setEntityAsObject(FormEvent $e) { $form = $e->getTarget(); if (!$form instanceof FormInterface) { return; } $config = $e->getConfiguration(); if (!$config || !$config->getEntity()) { return; } $rc = new \ReflectionClass($config->getEntity()); $hasConstructorparams = $rc->getConstructor() && $rc->getConstructor()->getNumberOfParameters() ? true : false; $instance = $hasConstructorparams ? $rc->newInstanceWithoutConstructor() : $rc->newInstance(); $form->setObject($instance); }