/** * @param string $type * @param string $index * * @return string */ public function retrieveRepositoryFormFragmentAction($type, $index) { $form = $this->getFormFactory()->createNamed('config'); $form->add($this->getFormFactory()->createNamed('repositories')); $form['repositories']->add($this->getFormFactory()->createNamed($index, new RepositoryType())); $form['repositories'][$index]->setData(Repository::create($type)); return $this->app->render('default/retrieveRepositoryFormFragment.html.twig', ['form' => $form['repositories'][$index]->createView()]); }
/** * @param FormEvent $event */ public function onPreBind(FormEvent $event) { $repo = Repository::create($event->getData()['type'])->fromArray($event->getData()); $event->getForm()->setData($repo); $this->loadDataType($event->getForm(), $repo); }
/** * @param array $data * * @return Config */ public function fromArray(array $data) { $this->name = isset($data['name']) ? $data['name'] : ''; $this->homepage = isset($data['homepage']) ? $data['homepage'] : ''; $this->requireAll = isset($data['require-all']) ? $data['require-all'] : false; if (!isset($data['repositories'])) { return $this; } foreach ($data['repositories'] as $repository) { $this->addRepository(Repository::create($repository['type'])->fromArray($repository)); } return $this; }