/** * Get form * * @param Category $category * * @return \Symfony\Component\Form\Form * @throws \Rad\DependencyInjection\Exception\ServiceNotFoundException */ public function getForm(Category $category = null) { $data = null; if ($category) { $data = $category->toArray(); } $action = $category ? Container::get('router')->generateUrl(['categories', $data['id']]) : Container::get('router')->generateUrl(['categories']); $formFactory = Forms::createFormFactory(); $options = ['action' => $action, 'method' => $category ? 'PUT' : 'POST']; $event = $this->getEventManager()->dispatch(self::EVENT_CATEGORIES_FORM_SCOPE, $this); /** @var CategoriesTable $categoriesTable */ $categoriesTable = TableRegistry::get('Categories.Categories'); $treeList = $categoriesTable->find('treeList'); if (!empty($category)) { $treeList->where(['id !=' => $data['id']]); } $formBuilder = $formFactory->createBuilder('form', $data, $options)->add('title', 'text', ['required' => true, 'attr' => ['class' => 'form-control']])->add('slug', 'text', ['required' => true, 'attr' => ['class' => 'form-control']])->add('parent_id', 'choice', ['choices' => $treeList->toArray(), 'empty_data' => null, 'empty_value' => 'No Parent', 'label' => 'Parent', 'required' => false]); if (!empty($event->getResult())) { $choices = $event->getResult(); if (!is_array($choices)) { $choices = [$choices]; } $formBuilder->add('scope', 'choice', ['choices' => $choices, 'label' => 'Group']); } return $formBuilder->add('description', 'textarea', ['required' => false, 'attr' => ['class' => 'form-control wysiwyg']])->add('submit', 'submit')->getForm(); }
/** * @throws \Twig_Error_Loader */ protected function setUp() { // Setup factory for tabs $this->tabFactory = Forms::createFormFactory(); parent::setUp(); $rendererEngine = new TwigRendererEngine(array('form_div_layout.html.twig', 'fields.html.twig')); if (interface_exists('Symfony\\Component\\Security\\Csrf\\CsrfTokenManagerInterface')) { $csrfProviderInterface = 'Symfony\\Component\\Security\\Csrf\\CsrfTokenManagerInterface'; } else { $csrfProviderInterface = 'Symfony\\Component\\Form\\Extension\\Csrf\\CsrfProvider\\CsrfProviderInterface'; } $renderer = new TwigRenderer($rendererEngine, $this->getMock($csrfProviderInterface)); $this->extension = new FormExtension($renderer); $reflection = new \ReflectionClass($renderer); $bridgeDirectory = dirname($reflection->getFileName()) . '/../Resources/views/Form'; $loader = new \Twig_Loader_Filesystem(array($bridgeDirectory, __DIR__ . '/../../Resources/views/Form')); $loader->addPath(__DIR__ . '/../../Resources/views', 'MopaBootstrap'); $environment = new Twig_Environment($loader, array('strict_variables' => true)); $environment->addExtension(new TranslationExtension(new StubTranslator())); $environment->addExtension(new IconExtension('fontawesome')); $environment->addExtension(new FormExtension2()); $environment->addGlobal('global', ''); $environment->addExtension($this->extension); $this->extension->initRuntime($environment); }
public function ajouterAction(Request $request) { $em = $this->getDoctrine()->getManager(); $sysmatricule = $this->get('trc_core.matricule'); $profil = new Profil(); $formFactory = Forms::createFormFactory(); $form = $this->get('form.factory')->create(new ProfilType(), $profil); if ($form->handleRequest($request)->isValid()) { $profil->setMatricule($sysmatricule->matriculeStandard($profil)); $em->persist($profil); $em->flush(); return $this->redirect($this->generateUrl('trc_admin_profils')); } $p = 1; $nbre = 5; $criteres = array(); if ($request->query->get('p') !== null && !empty($request->query->get('p'))) { $p = $request->query->get('p'); } $id = ($p - 1) * $nbre; if ($id < 0) { $id = 0; } $profils = $em->getRepository('TRCCoreBundle:Profil')->findBy($criteres, array(), $nbre, $id); $servicePagination = $this->get('trc_core.pagination'); $objet = 'Profil'; $url = $this->generateUrl('trc_admin_profils'); $urlRoute = 'trc_admin_profils'; $pagination = $servicePagination->pagination($objet, $p, $url, $urlRoute, $criteres, $nbre); return $this->render('TRCAdminBundle:Profils:ajouter.html.twig', array('form' => $form->createView(), 'profils' => $profils, 'pagination' => $pagination)); }
/** * @param Entity $page * * @return \Symfony\Component\Form\Form * @throws \Rad\DependencyInjection\Exception\ServiceNotFoundException */ public static function getForm($page = null) { $data = null; if ($page) { $data = $page->toArray(); } $action = $page ? Container::get('router')->generateUrl(['pages', $data['slug']]) : Container::get('router')->generateUrl(['pages']); $formFactory = Forms::createFormFactory(); $options = ['action' => $action, 'method' => $page ? 'PUT' : 'POST']; return $formFactory->createBuilder('form', $data, $options)->add('title', 'text', ['required' => true, 'attr' => ['class' => 'form-control']])->add('slug', 'text', ['required' => true, 'attr' => ['class' => 'form-control']])->add('body', 'textarea', ['required' => true, 'attr' => ['class' => 'form-control wysiwyg']])->add('submit', 'submit')->getForm(); }
public function create($request, $response) { $formFactory = Forms::createFormFactory(); /* @var $form \Symfony\Component\Form\Form */ $form = $formFactory->create(new BookType()); $form->handleRequest(); if ($form->isValid()) { $this->em->persist($form->getData()); $this->em->flush(); $this->session->getFlashBag()->add('notice', 'Book inserted'); $response = new RedirectResponse('/book'); return $response; } return $response->create($this->template->render('book/create.html.twig', ['title' => 'New Book', 'form' => $form->createView()])); }
public function utilisateursAjouterAction(Request $request, $matricule = null) { $em = $this->getDoctrine()->getManager(); $gu = $this->get('trc_core.gu'); $utilisateur = new Utilisateur(); $imageFile = $utilisateur->getImage(); $formFactory = Forms::createFormFactory(); $form = $this->get('form.factory')->create(new UtilisateurType(), $utilisateur); if ($form->handleRequest($request)->isValid()) { if ($utilisateur->getImage() == null) { $utilisateur->setImage($imageFile); } else { $file = $form['image']->getData(); $utilisateur->setImage($file); } $utilisateur = $gu->creerUtilisateur($utilisateur, $this->getUser()); $em->persist($utilisateur); $em->flush(); return $this->redirect($this->generateUrl('trc_admin_utilisateurs_voir', array('matricule' => $utilisateur->getMatricule()))); } return $this->render('TRCAdminBundle:Utilisateurs:utilisateursAjouter.html.twig', array('form' => $form->createView(), 'objet' => $utilisateur)); }
/** * @dataProvider exceptionWrapperSerializeResponseContentProvider * @param string $format */ public function testCreateResponseWithFormErrorsAndSerializationGroups($format) { $form = Forms::createFormFactory()->createBuilder()->add('name', 'text')->add('description', 'text')->getForm(); $form->get('name')->addError(new FormError('Invalid name')); $exceptionWrapper = new ExceptionWrapper(array('status_code' => 400, 'message' => 'Validation Failed', 'errors' => $form)); $view = new View($exceptionWrapper); $view->getSerializationContext()->setGroups(array('Custom')); $wrapperHandler = new ExceptionWrapperSerializeHandler(); $translatorMock = $this->getMock('Symfony\\Component\\Translation\\TranslatorInterface', array('trans', 'transChoice', 'setLocale', 'getLocale')); $translatorMock->expects($this->any())->method('trans')->will($this->returnArgument(0)); $formErrorHandler = new FormErrorHandler($translatorMock); $serializer = SerializerBuilder::create()->configureHandlers(function (HandlerRegistry $handlerRegistry) use($wrapperHandler, $formErrorHandler) { $handlerRegistry->registerSubscribingHandler($wrapperHandler); $handlerRegistry->registerSubscribingHandler($formErrorHandler); })->build(); $container = $this->getMock('Symfony\\Component\\DependencyInjection\\Container', array('get')); $container->expects($this->once())->method('get')->with('fos_rest.serializer')->will($this->returnValue($serializer)); $viewHandler = new ViewHandler(array()); $viewHandler->setContainer($container); $response = $viewHandler->createResponse($view, new Request(), $format); $serializer2 = SerializerBuilder::create()->configureHandlers(function (HandlerRegistry $handlerRegistry) use($wrapperHandler, $formErrorHandler) { $handlerRegistry->registerSubscribingHandler($formErrorHandler); })->build(); $container2 = $this->getMock('Symfony\\Component\\DependencyInjection\\Container', array('get')); $container2->expects($this->once())->method('get')->with('fos_rest.serializer')->will($this->returnValue($serializer2)); $viewHandler = new ViewHandler(array()); $viewHandler->setContainer($container2); $view2 = new View($exceptionWrapper); $response2 = $viewHandler->createResponse($view2, new Request(), $format); $this->assertEquals($response->getContent(), $response2->getContent()); }
/** * @dataProvider exceptionWrapperSerializeResponseContentProvider * * @param string $format */ public function testCreateResponseWithFormErrorsAndSerializationGroups($format) { // BC hack for Symfony 2.7 where FormType's didn't yet get configured via the FQN $formType = method_exists('Symfony\\Component\\Form\\AbstractType', 'getBlockPrefix') ? 'Symfony\\Component\\Form\\Extension\\Core\\Type\\TextType' : 'text'; $form = Forms::createFormFactory()->createBuilder()->add('name', $formType)->add('description', $formType)->getForm(); $form->get('name')->addError(new FormError('Invalid name')); $exceptionWrapper = new ExceptionWrapper(['status_code' => 400, 'message' => 'Validation Failed', 'errors' => $form]); $view = new View($exceptionWrapper); $view->getContext()->addGroups(array('Custom')); $translatorMock = $this->getMock('Symfony\\Component\\Translation\\TranslatorInterface', ['trans', 'transChoice', 'setLocale', 'getLocale']); $translatorMock->expects($this->any())->method('trans')->will($this->returnArgument(0)); $viewHandler = $this->createViewHandler([]); $response = $viewHandler->createResponse($view, new Request(), $format); $viewHandler = $this->createViewHandler([]); $view2 = new View($exceptionWrapper); $response2 = $viewHandler->createResponse($view2, new Request(), $format); $this->assertEquals($response->getContent(), $response2->getContent()); }
/** * @dataProvider exceptionWrapperSerializeResponseContentProvider * * @param string $format */ public function testCreateResponseWithFormErrorsAndSerializationGroups($format) { $form = Forms::createFormFactory()->createBuilder()->add('name', 'text')->add('description', 'text')->getForm(); $form->get('name')->addError(new FormError('Invalid name')); $exceptionWrapper = new ExceptionWrapper(['status_code' => 400, 'message' => 'Validation Failed', 'errors' => $form]); $view = new View($exceptionWrapper); $view->getSerializationContext()->addGroups(['Custom']); $wrapperHandler = new ExceptionWrapperSerializeHandler(); $translatorMock = $this->getMock('Symfony\\Component\\Translation\\TranslatorInterface', ['trans', 'transChoice', 'setLocale', 'getLocale']); $translatorMock->expects($this->any())->method('trans')->will($this->returnArgument(0)); $formErrorHandler = new FormErrorHandler($translatorMock); $serializer = SerializerBuilder::create()->configureHandlers(function (HandlerRegistry $handlerRegistry) use($wrapperHandler, $formErrorHandler) { $handlerRegistry->registerSubscribingHandler($wrapperHandler); $handlerRegistry->registerSubscribingHandler($formErrorHandler); })->build(); $adapter = $this->getMock('FOS\\RestBundle\\Context\\Adapter\\SerializationContextAdapterInterface'); $container = $this->getMock('Symfony\\Component\\DependencyInjection\\Container', ['get']); $container->expects($this->any())->method('get')->with($this->logicalOr($this->equalTo('fos_rest.serializer'), $this->equalTo('fos_rest.context.adapter.chain_context_adapter')))->will($this->returnCallback(function ($method) use($serializer, $adapter) { switch ($method) { case 'fos_rest.serializer': return $serializer; case 'fos_rest.context.adapter.chain_context_adapter': return $adapter; } })); $viewHandler = new ViewHandler([]); $viewHandler->setSerializationContextAdapter($this->getMock('FOS\\RestBundle\\Context\\Adapter\\SerializationContextAdapterInterface')); $viewHandler->setContainer($container); $response = $viewHandler->createResponse($view, new Request(), $format); $serializer2 = SerializerBuilder::create()->configureHandlers(function (HandlerRegistry $handlerRegistry) use($wrapperHandler, $formErrorHandler) { $handlerRegistry->registerSubscribingHandler($formErrorHandler); })->build(); $container2 = $this->getMock('Symfony\\Component\\DependencyInjection\\Container', ['get']); $container2->expects($this->any())->method('get')->with($this->logicalOr($this->equalTo('fos_rest.serializer'), $this->equalTo('fos_rest.context.adapter.chain_context_adapter')))->will($this->returnCallback(function ($method) use($serializer2, $adapter) { switch ($method) { case 'fos_rest.serializer': return $serializer2; case 'fos_rest.context.adapter.chain_context_adapter': return $adapter; } })); $viewHandler = new ViewHandler([]); $viewHandler->setSerializationContextAdapter($this->getMock('FOS\\RestBundle\\Context\\Adapter\\SerializationContextAdapterInterface')); $viewHandler->setContainer($container2); $view2 = new View($exceptionWrapper); $response2 = $viewHandler->createResponse($view2, new Request(), $format); $this->assertEquals($response->getContent(), $response2->getContent()); }
public function setUp() { $this->formFactory = Forms::createFormFactory(); }
use Monolog\Logger; use Monolog\Processor\UidProcessor; use Slim\Container; use Slim\Views\Twig; use Slim\Views\TwigExtension; use Symfony\Bridge\Twig\Extension\FormExtension; use Symfony\Bridge\Twig\Extension\TranslationExtension; use Symfony\Bridge\Twig\Form\TwigRenderer; use Symfony\Bridge\Twig\Form\TwigRendererEngine; use Symfony\Component\Form\Forms; use Symfony\Component\Translation\MessageSelector; use Symfony\Component\Translation\Translator; $container = $app->getContainer(); // form factory $container['form_factory'] = function (Container $c) { return Forms::createFormFactory(); }; // monolog $container['logger'] = function (Container $c) { $settings = $c->get('settings')['logger']; $logger = new Logger($settings['name']); $logger->pushProcessor(new UidProcessor()); $logger->pushHandler(new StreamHandler($settings['path'], Logger::DEBUG)); return $logger; }; // view $container['view'] = function (Container $c) { $settings = $c->get('settings')['view']; // symfony form: get the path to the default layout $extension = new \ReflectionClass('Symfony\\Bridge\\Twig\\Extension\\FormExtension'); $path = dirname($extension->getFileName()) . '/../Resources/views/Form';
/** * @codeCoverageIgnore */ // @codeCoverageIgnoreStart use App\Singleton\App; use Doctrine\ORM\Tools\Setup; use Symfony\Bridge\Twig\Extension\FormExtension; $container = App::getContainer(); $container->set('twigLoader', function () { return new Twig_Loader_Filesystem(); }); $container->set('twigEnvironment', function () { return new Twig_Environment(); }); $container->set('viewer', function () use($container) { return new \App\Http\Viewer($container->get('twigLoader'), $container->get('twigEnvironment')); }); $container->set('dispatcher', function () use($container) { return new \App\Http\Dispatcher($container->get('App\\Utility\\Collection'), $container->get('viewer')); }); $container->set('entityManager', function () { $config = Setup::createAnnotationMetadataConfiguration(array(__DIR__ . '/../src/' . APP . '/Model/Entity'), true); $connectionParams = array('dbname' => DB_NAME, 'user' => DB_USERNAME, 'password' => DB_PASSWORD, 'host' => DB_HOST, 'driver' => DB_DRIVER); $entityManager = \Doctrine\ORM\EntityManager::create($connectionParams, $config); return $entityManager; }); $container->set('formFactory', function () { return \Symfony\Component\Form\Forms::createFormFactory(); }); // @codeCoverageIgnoreEnd
public function setUp() { $this->errorTranslator = new ErrorTranslator(); $this->formBuilder = Forms::createFormFactory()->createBuilder(); }