From 4111b60395f0c0c7123a9cfd3bd777d37071bb1e Mon Sep 17 00:00:00 2001 From: MartkCz Date: Thu, 31 Dec 2020 11:45:17 +0100 Subject: [PATCH] add di, factory, serializer aware, readme --- readme.md | 31 ++++++++++++++++++++++++++ src/DI/FormSerializerExtension.php | 21 +++++++++++++++++ src/FormSerializerAwareInterface.php | 10 +++++++++ src/FormSerializerFactory.php | 30 +++++++++++++++++++++++++ src/FormSerializerFactoryInterface.php | 12 ++++++++++ src/TFormSerializer.php | 25 +++++++++++++++++++++ 6 files changed, 129 insertions(+) create mode 100644 readme.md create mode 100644 src/DI/FormSerializerExtension.php create mode 100644 src/FormSerializerAwareInterface.php create mode 100644 src/FormSerializerFactory.php create mode 100644 src/FormSerializerFactoryInterface.php create mode 100644 src/TFormSerializer.php diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..2685e33 --- /dev/null +++ b/readme.md @@ -0,0 +1,31 @@ +## Usage + +```php +use WebChemistry\FormSerializer\FormSerializerAwareInterface; +use WebChemistry\FormSerializer\TFormSerializer; + +class Form extends NetteForm implements FormSerializerAwareInterface { + + use TFormSerializer; + +} +``` + +```php + +use Nette\Application\UI\Form; +use WebChemistry\FormSerializer\FormSerializerFactoryInterface; + +class ArticleForm { + + public function __construct(private FormSerializerFactoryInterface $formSerializerFactory) {} + + public function create() { + $serializer = $this->formSerializerFactory->create($form = new Form(), Article::class); + + return $form; + } + +} + +``` diff --git a/src/DI/FormSerializerExtension.php b/src/DI/FormSerializerExtension.php new file mode 100644 index 0000000..bbceb39 --- /dev/null +++ b/src/DI/FormSerializerExtension.php @@ -0,0 +1,21 @@ +getContainerBuilder(); + + $builder->addDefinition($this->prefix('factory')) + ->setType(FormSerializerFactoryInterface::class) + ->setFactory(FormSerializerFactory::class); + } + +} diff --git a/src/FormSerializerAwareInterface.php b/src/FormSerializerAwareInterface.php new file mode 100644 index 0000000..0746bc0 --- /dev/null +++ b/src/FormSerializerAwareInterface.php @@ -0,0 +1,10 @@ +serializer, $this->em); + + if ($form instanceof FormSerializerAwareInterface) { + $form->setSerializer($serializer); + } + + return $serializer; + } + +} diff --git a/src/FormSerializerFactoryInterface.php b/src/FormSerializerFactoryInterface.php new file mode 100644 index 0000000..179d4bb --- /dev/null +++ b/src/FormSerializerFactoryInterface.php @@ -0,0 +1,12 @@ +serializer = $serializer; + + return $this; + } + + public function getSerializer(): FormSerializer + { + return $this->serializer; + } + +}