Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit e19bc87

Browse files
Require zlikavac32/php-enum:^1.3
Use \Zlikavac32\Enum\assertFqnIsEnumClass() to refactor common checks whether FQN is enum class or not
1 parent 69aba16 commit e19bc87

File tree

5 files changed

+16
-25
lines changed

5 files changed

+16
-25
lines changed

‎CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# PHP-Enum Symfony changelog
22

3+
## Unreleased
4+
5+
* **[CHANGED]** Require `zlikavac32/php-enum:^1.3`
6+
37
## 0.2.0 (2018年01月26日)
48

59
* **[NEW]** Symfony 4 support

‎composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"minimum-stability": "stable",
1414
"require": {
1515
"php": ">=7.1",
16-
"zlikavac32/php-enum": "^1.0",
16+
"zlikavac32/php-enum": "^1.3",
1717
"symfony/form": "^3.3 || ^4.0",
1818
"symfony/options-resolver": "^3.3 || ^4.0",
1919
"symfony/validator": "^3.3 || ^4.0"

‎src/Form/Type/EnumType.php

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
99
use Symfony\Component\Form\FormBuilderInterface;
1010
use Symfony\Component\OptionsResolver\OptionsResolver;
11+
use function Zlikavac32\Enum\assertFqnIsEnumClass;
1112
use Zlikavac32\Enum\Enum;
1213

1314
class EnumType extends ChoiceType
@@ -19,7 +20,7 @@ public function buildForm(FormBuilderInterface $builder, array $options)
1920
/* @var Enum|string $enumClass */
2021
$enumClass = $options['enum_class'];
2122

22-
$this->assertThatEnumClassIsValid($enumClass);
23+
assertFqnIsEnumClass($enumClass);
2324

2425
$options = $this->populateOptionsWithDefaults($options);
2526

@@ -65,13 +66,6 @@ private function buildChoicesForEnumClass(string $enumClass): array
6566
return $choices;
6667
}
6768

68-
private function assertThatEnumClassIsValid(string $enumClass): void
69-
{
70-
if (false === is_subclass_of($enumClass, Enum::class)) {
71-
throw new LogicException(sprintf('%s does not have %s as it\'s parent', $enumClass, Enum::class));
72-
}
73-
}
74-
7569
private function assertThatOverriddenOptionsAreNotSet(array $options): void
7670
{
7771
$optionsToCheckFor = [

‎src/Validator/Constraints/AbstractEnumConstraint.php

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use LogicException;
99
use Symfony\Component\Validator\Constraints\Choice;
1010
use Symfony\Component\Validator\Constraints\ChoiceValidator;
11+
use function Zlikavac32\Enum\assertFqnIsEnumClass;
1112
use Zlikavac32\Enum\Enum;
1213

1314
abstract class AbstractEnumConstraint extends Choice
@@ -52,16 +53,7 @@ private function assertEnumClassIsValid(?string $enumClass): void
5253
throw new LogicException('Enum class can not be null');
5354
}
5455

55-
if (in_array(Enum::class, class_parents($enumClass))) {
56-
return;
57-
}
58-
59-
throw new LogicException(
60-
sprintf(
61-
'Provided enum class %s is not valid',
62-
$enumClass
63-
)
64-
);
56+
assertFqnIsEnumClass($enumClass);
6557
}
6658

6759
/**

‎tests/Validator/Constraints/AbstractEnumConstraintTest.php

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
namespace Zlikavac32\SymfonyEnum\Tests\Validator\Constraints;
66

7+
use LogicException;
78
use PHPUnit\Framework\TestCase;
89
use stdClass;
910
use Symfony\Component\Validator\Constraints\ChoiceValidator;
@@ -13,7 +14,7 @@
1314
class AbstractEnumConstraintTest extends TestCase
1415
{
1516
/**
16-
* @expectedException \LogicException
17+
* @expectedException LogicException
1718
* @expectedExceptionMessage Enum class can not be null
1819
*/
1920
public function testThatEnumClassCanNotBeNull(): void
@@ -22,16 +23,16 @@ public function testThatEnumClassCanNotBeNull(): void
2223
}
2324

2425
/**
25-
* @expectedException \LogicException
26-
* @expectedExceptionMessage Provided enum class stdClass is not valid
26+
* @expectedException LogicException
27+
* @expectedExceptionMessage stdClass does not have Zlikavac32\Enum\Enum as it's parent
2728
*/
2829
public function testThatEnumClassMustHaveEnumAsItsParent(): void
2930
{
3031
$this->create(stdClass::class);
3132
}
3233

3334
/**
34-
* @expectedException \LogicException
35+
* @expectedException LogicException
3536
* @expectedExceptionMessage Key choices is overridden internally so it should not be set from the outside
3637
*/
3738
public function testThatChoicesOptionMustNotBeSet(): void
@@ -46,7 +47,7 @@ public function testThatChoicesOptionMustNotBeSet(): void
4647
}
4748

4849
/**
49-
* @expectedException \LogicException
50+
* @expectedException LogicException
5051
* @expectedExceptionMessage Key callback is overridden internally so it should not be set from the outside
5152
*/
5253
public function testThatCallbackOptionMustNotBeSet(): void
@@ -60,7 +61,7 @@ public function testThatCallbackOptionMustNotBeSet(): void
6061
}
6162

6263
/**
63-
* @expectedException \LogicException
64+
* @expectedException LogicException
6465
* @expectedExceptionMessage Key strict is overridden internally so it should not be set from the outside
6566
*/
6667
public function testThatStrictOptionMustNotBeSet(): void

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /