dev-master
9999999-dev http://venne.czVenne forms component
GPL-3.0 BSD-3-Clause GPL-2.0
The Requires
- php >=5.5.0
- nette/di 2.3@dev
- nette/forms 2.3@dev
The Development Requires
by Josef Kříž
forms nette venne
Venne forms component
Create forms as nested factories:, (*1)
+- IFormFactory ---+ +- IFormFactory --+ +- IFormFactory -+ | Base factory | -> | Adds inputs | -> | Adds mapping | -> create() : Form +------------------+ +-----------------+ +----------------+
Benefits:, (*2)
The best way to install Venne/Forms is using Composer:, (*3)
composer require venne/forms:@dev
example:, (*4)
services: basicFormFactory: class: Nette\Application\UI\Form arguments: [NULL, NULL] implement: Venne\Forms\IFormFactory setup: - setRenderer(@system.formRenderer) - setTranslator(@translator.translator) autowired: no
Implement Venne\Forms\IFormFactory
:, (*5)
class FooFormFactory implements Venne\Forms\IFormFactory { private $formFactory; public function __construct(IFormFactory $formFactory) { $this->formFactory = $formFactory; } public function create() { $form = $this->formFactory->create(); $form->addText('foo', 'Foo'); $form->addSubmit('_submit', 'Save'); return $form; } }
Define nested formFactory in constructor, (*6)
services: fooFormFactory: class: FooFormFactory(@basicFormFactory)
class ExamplePresenter extends Nette\Application\UI\Presenter { private $fooFormFactory; public function __construct(FooFormFactory $fooFormFactory) { $this->fooFormFactory = $fooFormFactory; } public function createComponentFooForm() { $form = $this->fooFormFactory->create(); $form->onSuccess[] = $this->fooFormSuccess; return $form; } public function fooFormSuccess($form) { ... } }
kdyby\doctrine-forms
```php use Venne\Bridges\Kdyby\DoctrineForms\FormFactoryFactory;, (*7)
class ExamplePresenter extends Nette\Application\UI\Presenter {, (*8)
private $fooFormFactory; private $formFactoryFactory; public function __construct(FooFormFactory $fooFormFactory, FormFactoryFactory $formFactoryFactory) { $this->fooFormFactory = $fooFormFactory; $this->formFactoryFactory = $formFactoryFactory; } public function createComponentFooForm() { $entity = ....; $form = $this->formFactoryFactory ->create($this->fooFormFactory) ->setEntity($entity) ->create(); $form->onSuccess[] = $this->fooFormSuccess; return $form; } public function fooFormSuccess($form) { ... }
}, (*9)
Venne forms component
GPL-3.0 BSD-3-Clause GPL-2.0
forms nette venne