PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 4.18.0
GiveWP – Donation Plugin and Fundraising Platform v4.18.0
4.18.0 4.17.0 4.16.9 4.16.8.1 4.16.8 4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 4.16.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 All 257 releases
give / vendor / vendor-prefixed / stellarwp / validation / src / Rules / In.php

In.php in GiveWP – Donation Plugin and Fundraising Platform 4.18.0, at vendor/vendor-prefixed/stellarwp/validation/src/Rules/In.php

77 lines 1.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Give\Vendors\StellarWP\Validation\Rules;
4
5 use Closure;
6 use Give\Vendors\StellarWP\Validation\Config;
7 use Give\Vendors\StellarWP\Validation\Contracts\ValidatesOnFrontEnd;
8 use Give\Vendors\StellarWP\Validation\Contracts\ValidationRule;
9
10 class In implements ValidationRule, ValidatesOnFrontEnd
11 {
12 /**
13 * @var array<mixed>
14 */
15 protected array $acceptedValues;
16
17 /**
18 * @since 1.2.0
19 */
20 public static function id(): string
21 {
22 return 'in';
23 }
24
25 /**
26 * @since 1.2.0
27 *
28 * @param mixed ...$acceptedValues
29 */
30 final public function __construct(...$acceptedValues)
31 {
32 if (empty($acceptedValues)) {
33 Config::throwInvalidArgumentException('The In rule requires at least one value to be specified.');
34 }
35
36 $this->acceptedValues = $acceptedValues;
37 }
38
39 /**
40 * @since 1.2.0
41 */
42 public static function fromString(?string $options = null): ValidationRule
43 {
44 if (empty(trim($options))) {
45 Config::throwInvalidArgumentException('The In rule requires at least one value to be specified.');
46 }
47
48 $values = explode(',', $options);
49
50 if (empty($values)) {
51 Config::throwInvalidArgumentException('The In rule requires at least one value to be specified.');
52 }
53
54 return new static(...$values);
55 }
56
57 /**
58 * @since 1.2.0
59 */
60 public function __invoke($value, Closure $fail, string $key, array $values)
61 {
62 if (!in_array($value, $this->acceptedValues)) {
63 $fail(sprintf(__('%s must be one of %s', 'give'), '{field}', implode(', ', $this->acceptedValues)));
64 }
65 }
66
67 /**
68 * @since 1.2.0
69 *
70 * @return array<mixed>
71 */
72 public function serializeOption(): array
73 {
74 return $this->acceptedValues;
75 }
76 }
77