|
1 | 1 | <?php
|
| 2 | +// phpcs:disable |
| 3 | +// PSR1.Classes.ClassDeclaration.MultipleClasses |
2 | 4 |
|
3 | 5 | namespace Qiniu\Enum;
|
4 | 6 |
|
5 | 7 | use MyCLabs\Enum\Enum;
|
6 | 8 |
|
7 |
| -/** |
8 |
| - * 扩展 MyCLabs\Enum\Enum 以使用其新版本的 from 方法 |
9 |
| - * |
10 |
| - * @link https://github.com/myclabs/php-enum |
11 |
| - */ |
12 |
| -abstract class QiniuEnum extends Enum |
13 |
| -{ |
14 |
| - /** |
15 |
| - * @param mixed $value |
16 |
| - * @return static |
17 |
| - */ |
18 |
| - public static function from($value) |
| 9 | +if (method_exists("MyCLabs\\Enum\\Enum", "from")) { |
| 10 | + abstract class QiniuEnum extends Enum |
19 | 11 | {
|
20 |
| - $key = self::assertValidValueReturningKey($value); |
21 |
| - |
22 |
| - return self::__callStatic($key, array()); |
23 | 12 | }
|
24 |
| - |
| 13 | +} else { |
25 | 14 | /**
|
26 |
| - * Asserts valid enum value |
| 15 | + * poly fill MyCLabs\Enum\Enum::from in low version |
27 | 16 | *
|
28 |
| - * @psalm-pure |
29 |
| - * @psalm-assert T $value |
30 |
| - * @param mixed $value |
31 |
| - * @return string |
| 17 | + * @link https://github.com/myclabs/php-enum |
32 | 18 | */
|
33 |
| - private static function assertValidValueReturningKey($value) |
| 19 | + abstract class QiniuEnum extends Enum |
34 | 20 | {
|
35 |
| - if (false === ($key = self::search($value))) { |
36 |
| - throw new \UnexpectedValueException("Value '$value' is not part of the enum " . __CLASS__); |
| 21 | + /** |
| 22 | + * @param mixed $value |
| 23 | + * @return static |
| 24 | + */ |
| 25 | + public static function from($value) |
| 26 | + { |
| 27 | + $key = self::assertValidValueReturningKey($value); |
| 28 | + |
| 29 | + return self::__callStatic($key, array()); |
37 | 30 | }
|
38 | 31 |
|
39 |
| - return $key; |
| 32 | + /** |
| 33 | + * Asserts valid enum value |
| 34 | + * |
| 35 | + * @psalm-pure |
| 36 | + * @psalm-assert T $value |
| 37 | + * @param mixed $value |
| 38 | + * @return string |
| 39 | + */ |
| 40 | + private static function assertValidValueReturningKey($value) |
| 41 | + { |
| 42 | + if (false === ($key = self::search($value))) { |
| 43 | + throw new \UnexpectedValueException("Value '$value' is not part of the enum " . __CLASS__); |
| 44 | + } |
| 45 | + |
| 46 | + return $key; |
| 47 | + } |
40 | 48 | }
|
41 | 49 | }
|
0 commit comments