From c91efa53bc208f637d3c458772225dd0bb15311e Mon Sep 17 00:00:00 2001 From: Eric Espie Date: Thu, 17 Apr 2025 14:30:16 +0200 Subject: [PATCH] SDK Form demonstrator refactor --- .../FormType/Base/AbstractType.php | 4 +- .../{ => Forms}/FormType/Base/FormBuilder.php | 37 +++++++++++-------- .../{ => Forms}/FormType/Base/HiddenType.php | 2 +- .../{ => Forms}/FormType/Base/TextType.php | 2 +- .../FormType/Base/TextareaType.php | 2 +- .../FormType/Orm/AttCodeGroupByType.php | 4 +- .../{ => Forms}/FormType/Orm/QueryType.php | 4 +- .../FormType/Orm/ValuesFromAttcodeType.php | 4 +- .../FormType/Base/TextTypeTest.php | 2 +- 9 files changed, 33 insertions(+), 28 deletions(-) rename sources/{ => Forms}/FormType/Base/AbstractType.php (91%) rename sources/{ => Forms}/FormType/Base/FormBuilder.php (97%) rename sources/{ => Forms}/FormType/Base/HiddenType.php (90%) rename sources/{ => Forms}/FormType/Base/TextType.php (89%) rename sources/{ => Forms}/FormType/Base/TextareaType.php (92%) rename sources/{ => Forms}/FormType/Orm/AttCodeGroupByType.php (97%) rename sources/{ => Forms}/FormType/Orm/QueryType.php (87%) rename sources/{ => Forms}/FormType/Orm/ValuesFromAttcodeType.php (94%) diff --git a/sources/FormType/Base/AbstractType.php b/sources/Forms/FormType/Base/AbstractType.php similarity index 91% rename from sources/FormType/Base/AbstractType.php rename to sources/Forms/FormType/Base/AbstractType.php index 70a24b583..f5ca9eb55 100644 --- a/sources/FormType/Base/AbstractType.php +++ b/sources/Forms/FormType/Base/AbstractType.php @@ -4,7 +4,7 @@ * @license http://opensource.org/licenses/AGPL-3.0 */ -namespace Combodo\iTop\FormType\Base; +namespace Combodo\iTop\Forms\FormType\Base; use Symfony\Component\Form\AbstractType as SymfonyAbstractType; use Symfony\Component\Form\FormBuilderInterface; @@ -18,7 +18,7 @@ abstract class AbstractType extends SymfonyAbstractType parent::buildForm($builder, $options); if (isset($options['callback']) && isset($options['hook_type'])) { $builder->addEventListener($options['hook_type'], function (FormEvent $event) use ($options): void { - \IssueLog::Info($event->getForm()->getName().' '.$options['hook_type']); + \IssueLog::Info($event->getForm()->getName().' AbstractType.php'.$options['hook_type']); call_user_func($options['callback'], $event); }); } diff --git a/sources/FormType/Base/FormBuilder.php b/sources/Forms/FormType/Base/FormBuilder.php similarity index 97% rename from sources/FormType/Base/FormBuilder.php rename to sources/Forms/FormType/Base/FormBuilder.php index 7f50ba7f6..1d212c12b 100644 --- a/sources/FormType/Base/FormBuilder.php +++ b/sources/Forms/FormType/Base/FormBuilder.php @@ -4,10 +4,10 @@ * @license http://opensource.org/licenses/AGPL-3.0 */ -namespace Combodo\iTop\FormType\Base; +namespace Combodo\iTop\Forms\FormType\Base; -use Combodo\iTop\FormType\Orm\AttCodeGroupByType; -use Combodo\iTop\FormType\Orm\ValuesFromAttcodeType; +use Combodo\iTop\Forms\FormType\Orm\AttCodeGroupByType; +use Combodo\iTop\Forms\FormType\Orm\ValuesFromAttcodeType; use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\Form\DataMapperInterface; @@ -86,21 +86,13 @@ class FormBuilder implements FormBuilderInterface, \IteratorAggregate } } - /* - * ---------------------------------------- - * - * Pure decoration methods below. - * - * ---------------------------------------- - */ - - public function count(): int - { - return $this->builder->count(); - } - /** * @param string|FormBuilderInterface $child + * @param string|null $type + * @param array $options + * + * @return \Combodo\iTop\Forms\FormType\Base\FormBuilder + * @throws \Exception */ public function add($child, ?string $type = null, array $options = []): static { @@ -122,6 +114,19 @@ class FormBuilder implements FormBuilderInterface, \IteratorAggregate return $this; } + /* + * ---------------------------------------- + * + * Pure decoration methods below. + * + * ---------------------------------------- + */ + + public function count(): int + { + return $this->builder->count(); + } + public function create(string $name, ?string $type = null, array $options = []): FormBuilderInterface { return $this->builder->create($name, $type, $options); diff --git a/sources/FormType/Base/HiddenType.php b/sources/Forms/FormType/Base/HiddenType.php similarity index 90% rename from sources/FormType/Base/HiddenType.php rename to sources/Forms/FormType/Base/HiddenType.php index 696520fd0..2a48c3663 100644 --- a/sources/FormType/Base/HiddenType.php +++ b/sources/Forms/FormType/Base/HiddenType.php @@ -4,7 +4,7 @@ * @license http://opensource.org/licenses/AGPL-3.0 */ -namespace Combodo\iTop\FormType\Base; +namespace Combodo\iTop\Forms\FormType\Base; use Symfony\Component\Form\Extension\Core\Type\HiddenType as SymfonyHiddenType; diff --git a/sources/FormType/Base/TextType.php b/sources/Forms/FormType/Base/TextType.php similarity index 89% rename from sources/FormType/Base/TextType.php rename to sources/Forms/FormType/Base/TextType.php index 2b63cb6fd..a51f317ab 100644 --- a/sources/FormType/Base/TextType.php +++ b/sources/Forms/FormType/Base/TextType.php @@ -4,7 +4,7 @@ * @license http://opensource.org/licenses/AGPL-3.0 */ -namespace Combodo\iTop\FormType\Base; +namespace Combodo\iTop\Forms\FormType\Base; use Symfony\Component\Form\Extension\Core\Type\TextType as SymfonyTextType; diff --git a/sources/FormType/Base/TextareaType.php b/sources/Forms/FormType/Base/TextareaType.php similarity index 92% rename from sources/FormType/Base/TextareaType.php rename to sources/Forms/FormType/Base/TextareaType.php index 38020cc87..0ee966c3e 100644 --- a/sources/FormType/Base/TextareaType.php +++ b/sources/Forms/FormType/Base/TextareaType.php @@ -4,7 +4,7 @@ * @license http://opensource.org/licenses/AGPL-3.0 */ -namespace Combodo\iTop\FormType\Base; +namespace Combodo\iTop\Forms\FormType\Base; use Symfony\Component\Form\Extension\Core\Type\TextareaType as SymfonyTextareaType; use Symfony\Component\OptionsResolver\OptionsResolver; diff --git a/sources/FormType/Orm/AttCodeGroupByType.php b/sources/Forms/FormType/Orm/AttCodeGroupByType.php similarity index 97% rename from sources/FormType/Orm/AttCodeGroupByType.php rename to sources/Forms/FormType/Orm/AttCodeGroupByType.php index 46b59bf7b..885f9b1ab 100644 --- a/sources/FormType/Orm/AttCodeGroupByType.php +++ b/sources/Forms/FormType/Orm/AttCodeGroupByType.php @@ -4,9 +4,9 @@ * @license http://opensource.org/licenses/AGPL-3.0 */ -namespace Combodo\iTop\FormType\Orm; +namespace Combodo\iTop\Forms\FormType\Orm; -use Combodo\iTop\FormType\Base\AbstractType; +use Combodo\iTop\Forms\FormType\Base\AbstractType; use Dict; use Exception; use Symfony\Component\Form\Extension\Core\Type\ChoiceType as SymfonyChoiceType; diff --git a/sources/FormType/Orm/QueryType.php b/sources/Forms/FormType/Orm/QueryType.php similarity index 87% rename from sources/FormType/Orm/QueryType.php rename to sources/Forms/FormType/Orm/QueryType.php index 5f11471d6..590f8c980 100644 --- a/sources/FormType/Orm/QueryType.php +++ b/sources/Forms/FormType/Orm/QueryType.php @@ -4,9 +4,9 @@ * @license http://opensource.org/licenses/AGPL-3.0 */ -namespace Combodo\iTop\FormType\Orm; +namespace Combodo\iTop\Forms\FormType\Orm; -use Combodo\iTop\FormType\Base\AbstractType; +use Combodo\iTop\Forms\FormType\Base\AbstractType; use Symfony\Component\Form\Extension\Core\Type\TextareaType as SymfonyTextareaType; use Symfony\Component\OptionsResolver\OptionsResolver; diff --git a/sources/FormType/Orm/ValuesFromAttcodeType.php b/sources/Forms/FormType/Orm/ValuesFromAttcodeType.php similarity index 94% rename from sources/FormType/Orm/ValuesFromAttcodeType.php rename to sources/Forms/FormType/Orm/ValuesFromAttcodeType.php index e44b57e14..dd59c17f7 100644 --- a/sources/FormType/Orm/ValuesFromAttcodeType.php +++ b/sources/Forms/FormType/Orm/ValuesFromAttcodeType.php @@ -4,9 +4,9 @@ * @license http://opensource.org/licenses/AGPL-3.0 */ -namespace Combodo\iTop\FormType\Orm; +namespace Combodo\iTop\Forms\FormType\Orm; -use Combodo\iTop\FormType\Base\AbstractType; +use Combodo\iTop\Forms\FormType\Base\AbstractType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType as SymfonyChoiceType; use utils; diff --git a/tests/php-unit-tests/unitary-tests/application/FormType/Base/TextTypeTest.php b/tests/php-unit-tests/unitary-tests/application/FormType/Base/TextTypeTest.php index 0dba343ed..5396a9ace 100644 --- a/tests/php-unit-tests/unitary-tests/application/FormType/Base/TextTypeTest.php +++ b/tests/php-unit-tests/unitary-tests/application/FormType/Base/TextTypeTest.php @@ -6,7 +6,7 @@ namespace Combodo\iTop\Test\UnitTest\Application\FormType\Base; -use Combodo\iTop\FormType\Orm\AttCodeGroupByType; +use Combodo\iTop\Forms\FormType\Orm\AttCodeGroupByType; use Combodo\iTop\Test\UnitTest\ItopTestCase; use Symfony\Component\Form\Extension\Core\Type\FormType; use Symfony\Component\Form\Extension\HttpFoundation\HttpFoundationExtension;