From f0b41aed6e13911ffab6b41a375478f9889a62ce Mon Sep 17 00:00:00 2001 From: Tom Witkowski Date: Fri, 27 Jul 2018 15:28:00 +0200 Subject: [PATCH 1/2] #2 - use new nested-options-resolver --- composer.json | 2 +- src/Elements/Element.php | 31 +++++++++++++++++-------------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/composer.json b/composer.json index 4f7d0dd..cea366b 100644 --- a/composer.json +++ b/composer.json @@ -12,7 +12,7 @@ ], "require": { "php": "^7.1.3", - "symfony/options-resolver": "^4.0" + "curlyspoon/nested-options-resolver": "^1.0" }, "require-dev": { "laravel/lumen-framework": "^5.6", diff --git a/src/Elements/Element.php b/src/Elements/Element.php index e0627ce..2ca3f06 100644 --- a/src/Elements/Element.php +++ b/src/Elements/Element.php @@ -3,7 +3,8 @@ namespace Curlyspoon\Core\Elements; use Curlyspoon\Core\Contracts\Element as ElementContract; -use Symfony\Component\OptionsResolver\OptionsResolver; +use Curlyspoon\NestedOptionsResolver\OptionsResolver; +use Symfony\Component\OptionsResolver\OptionsResolver as SymfonyOptionsResolver; abstract class Element implements ElementContract { @@ -40,6 +41,13 @@ abstract class Element implements ElementContract */ protected $values = []; + /** + * @var array + * + * @see OptionsResolver::setNested() + */ + protected $nested = []; + /** * @var array */ @@ -72,20 +80,15 @@ public function __toString(): string return $this->toString(); } - protected function optionsResolver(): OptionsResolver + protected function optionsResolver(): SymfonyOptionsResolver { - $resolver = new OptionsResolver(); - $resolver->setDefaults($this->defaults); - - $resolver->setRequired($this->required); - - foreach ($this->types as $option => $types) { - $resolver->setAllowedTypes($option, $types); - } - - foreach ($this->values as $option => $values) { - $resolver->setAllowedValues($option, $values); - } + $resolver = OptionsResolver::make([ + 'defaults' => $this->defaults, + 'required' => $this->required, + 'types' => $this->types, + 'values' => $this->values, + 'nested' => $this->nested, + ]); if (method_exists($this, 'configureOptions')) { $this->configureOptions($resolver); From 7e2ba32e210f4749c644bbabed19b5baf95b1332 Mon Sep 17 00:00:00 2001 From: Tom Witkowski Date: Fri, 27 Jul 2018 13:28:14 +0000 Subject: [PATCH 2/2] Apply fixes from StyleCI --- src/Elements/Element.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Elements/Element.php b/src/Elements/Element.php index 2ca3f06..183066f 100644 --- a/src/Elements/Element.php +++ b/src/Elements/Element.php @@ -85,9 +85,9 @@ protected function optionsResolver(): SymfonyOptionsResolver $resolver = OptionsResolver::make([ 'defaults' => $this->defaults, 'required' => $this->required, - 'types' => $this->types, - 'values' => $this->values, - 'nested' => $this->nested, + 'types' => $this->types, + 'values' => $this->values, + 'nested' => $this->nested, ]); if (method_exists($this, 'configureOptions')) {