PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.12.3
GiveWP – Donation Plugin and Fundraising Platform v3.12.3
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
Enum.php 4 years ago EnumInteractsWithQueryBuilder.php 3 years ago Money.php 3 years ago
Enum.php
72 lines
1 <?php
2
3 namespace Give\Framework\Support\ValueObjects;
4
5 use BadMethodCallException;
6 use Give\Framework\Support\Facades\Str;
7
8 /**
9 * @method public getKeyAsCamelCase()
10 */
11 abstract class Enum extends \MyCLabs\Enum\Enum
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 * @param ...$enums
41 *
42 * @return bool
43 */
44 public function isOneOf(...$enums) {
45 foreach($enums as $enum) {
46 if ( $this->equals($enum) ) {
47 return true;
48 }
49 }
50
51 return false;
52 }
53
54 /**
55 * @return string
56 */
57 public function getKeyAsCamelCase()
58 {
59 return Str::camel($this->getKey());
60 }
61
62 /**
63 * @param string $name
64 *
65 * @return bool
66 */
67 protected static function hasConstant($name)
68 {
69 return array_key_exists($name, static::toArray());
70 }
71 }
72