PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.19.2
GiveWP – Donation Plugin and Fundraising Platform v3.19.2
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / Framework / Support / ValueObjects / Enum.php
give / src / Framework / Support / ValueObjects Last commit date
BaseEnum.php 1 year ago Enum.php 1 year ago EnumInteractsWithQueryBuilder.php 3 years ago Money.php 3 years ago
Enum.php
68 lines
1 <?php
2
3 namespace Give\Framework\Support\ValueObjects;
4
5 use BadMethodCallException;
6 use Give\Framework\Support\Facades\Str;
7
8 /**
9 * @since 2.10.0
10 */
11 abstract class Enum extends BaseEnum
12 {
13 /**
14 * @since 2.20.0
15 *
16 * Adds support for is{Value} methods. So if an Enum has an ACTIVE value, then an isActive() instance method is
17 * automatically available.
18 *
19 * @param $name
20 * @param $arguments
21 *
22 * @return bool
23 */
24 public function __call($name, $arguments)
25 {
26 if (strpos($name, 'is') === 0) {
27 $constant = Str::upper(Str::snake(Str::after($name, 'is')));
28
29 if ( ! self::hasConstant($constant)) {
30 throw new BadMethodCallException("$name does not match a corresponding enum constant.");
31 }
32
33 return $this->equals(parent::$constant());
34 }
35
36 throw new BadMethodCallException("Method $name does not exist on enum");
37 }
38
39 /**
40 * @since 2.20.0
41 */
42 public function isOneOf(Enum...$enums): bool {
43 foreach($enums as $enum) {
44 if ( $this->equals($enum) ) {
45 return true;
46 }
47 }
48
49 return false;
50 }
51
52 /**
53 * @since 2.20.0
54 */
55 public function getKeyAsCamelCase(): string
56 {
57 return Str::camel($this->getKey());
58 }
59
60 /**
61 * @since 2.20.0
62 */
63 protected static function hasConstant(string $name): bool
64 {
65 return array_key_exists($name, static::toArray());
66 }
67 }
68