diff --git a/composer.json b/composer.json index 6d32da8..25eaf26 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,7 @@ "name": "workivate/feature-keys", "license": "MIT", "description": "Feature Keys Domain Framework", - "version": "1.0.8", + "version": "1.0.9", "require": { "php": "^7.0" }, diff --git a/src/FeatureAccess/FeatureAccessConfigIterator.php b/src/FeatureAccess/FeatureAccessConfigIterator.php index dd69640..0f3f281 100644 --- a/src/FeatureAccess/FeatureAccessConfigIterator.php +++ b/src/FeatureAccess/FeatureAccessConfigIterator.php @@ -3,11 +3,11 @@ namespace FeatureKeys\FeatureAccess; +use FeatureKeys\FeatureConfig\IteratorTrait; + abstract class FeatureAccessConfigIterator implements \Iterator { - private $index = 0; - - private $config = []; + use IteratorTrait; protected function add(FeatureAccessConfigElement $configElement): void { @@ -18,24 +18,4 @@ public function current(): FeatureAccessConfigElement { return $this->config[$this->index]; } - - public function next(): void - { - ++$this->index; - } - - public function key(): int - { - return $this->index; - } - - public function valid(): bool - { - return isset($this->config[$this->index]); - } - - public function rewind(): void - { - $this->index = 0; - } } diff --git a/src/FeatureConfig/FeatureClassNameIterator.php b/src/FeatureConfig/FeatureClassNameIterator.php index ee666f7..db623c7 100644 --- a/src/FeatureConfig/FeatureClassNameIterator.php +++ b/src/FeatureConfig/FeatureClassNameIterator.php @@ -5,9 +5,7 @@ abstract class FeatureClassNameIterator implements \Iterator { - private $index = 0; - - private $config = []; + use IteratorTrait; public function add(ClassName $configElement): void { @@ -18,24 +16,4 @@ public function current(): ClassName { return $this->config[$this->index]; } - - public function next(): void - { - ++$this->index; - } - - public function key(): int - { - return $this->index; - } - - public function valid(): bool - { - return isset($this->config[$this->index]); - } - - public function rewind(): void - { - $this->index = 0; - } } diff --git a/src/FeatureConfig/IteratorTrait.php b/src/FeatureConfig/IteratorTrait.php new file mode 100644 index 0000000..94cceaa --- /dev/null +++ b/src/FeatureConfig/IteratorTrait.php @@ -0,0 +1,31 @@ +index; + } + + public function key(): int + { + return $this->index; + } + + public function valid(): bool + { + return isset($this->config[$this->index]); + } + + public function rewind(): void + { + $this->index = 0; + } +} diff --git a/src/FeatureOverride/FeatureOverrideContainer.php b/src/FeatureOverride/FeatureOverrideContainer.php index c275558..8f22558 100644 --- a/src/FeatureOverride/FeatureOverrideContainer.php +++ b/src/FeatureOverride/FeatureOverrideContainer.php @@ -24,15 +24,13 @@ public function set(FeatureOverride $featureOverride): void public function get(string $featureOverrideName): FeatureOverride { - if (!$this->has($featureOverrideName)) { - throw FeatureOverrideContainerException::overrideNotFound($featureOverrideName); - } foreach ($this->overrides as $override) { if ($override::getName() !== $featureOverrideName) { continue; } return $override; } + throw FeatureOverrideContainerException::overrideNotFound($featureOverrideName); } public function has(string $featureOverrideName): bool diff --git a/src/FeatureOverride/FeatureOverrideContainerHydrator.php b/src/FeatureOverride/FeatureOverrideContainerHydrator.php index 0f9f852..6666816 100644 --- a/src/FeatureOverride/FeatureOverrideContainerHydrator.php +++ b/src/FeatureOverride/FeatureOverrideContainerHydrator.php @@ -14,5 +14,6 @@ public static function unsetAfter(FeatureOverrideContainer $container, string $l return $hydratedContainer; } } + throw new \LogicException("$lastOverrideName override is not present in the container"); } }