PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.6.1
GiveWP – Donation Plugin and Fundraising Platform v3.6.1
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 / FieldsAPI / Concerns / Macroable.php
give / src / Framework / FieldsAPI / Concerns Last commit date
AllowMultiple.php 4 years ago HasDefaultValue.php 4 years ago HasDescription.php 2 years ago HasEmailTag.php 3 years ago HasHelpText.php 4 years ago HasLabel.php 3 years ago HasMaxLength.php 3 years ago HasMinLength.php 3 years ago HasName.php 3 years ago HasNodes.php 3 years ago HasOptions.php 4 years ago HasPersistence.php 2 years ago HasPlaceholder.php 4 years ago HasType.php 3 years ago HasVisibilityConditions.php 2 years ago InsertNode.php 3 years ago IsReadOnly.php 4 years ago IsRequired.php 3 years ago Macroable.php 4 years ago MoveNode.php 3 years ago MoveNodeProxy.php 4 years ago NameCollision.php 2 years ago RemoveNode.php 2 years ago SerializeAsJson.php 3 years ago ShowInAdmin.php 3 years ago ShowInReceipt.php 2 years ago TapNode.php 3 years ago WalkNodes.php 4 years ago
Macroable.php
79 lines
1 <?php
2
3 namespace Give\Framework\FieldsAPI\Concerns;
4
5 use BadMethodCallException;
6 use Closure;
7
8 /**
9 * @since 2.17.0
10 */
11 trait Macroable
12 {
13
14 /** @var array */
15 protected static $macros = [];
16
17 /**
18 * Add a macro to the class.
19 *
20 * @since 2.17.0
21 *
22 * @param string $name
23 * @param callable $macro
24 *
25 * @return void
26 */
27 public static function macro($name, callable $macro)
28 {
29 static::$macros[$name] = $macro;
30 }
31
32 /**
33 * Check if the class has the named macro.
34 *
35 * @since 2.17.0
36 *
37 * @param string $name
38 *
39 * @return bool
40 */
41 public static function hasMacro($name)
42 {
43 return isset(static::$macros[$name]);
44 }
45
46 /**
47 * Call the macro
48 *
49 * @since 2.17.0
50 *
51 * @param string $method
52 * @param array $parameters
53 *
54 * @return mixed
55 *
56 * @throws BadMethodCallException
57 */
58 public function __call($method, array $parameters)
59 {
60 if ( ! static::hasMacro($method)) {
61 throw new BadMethodCallException(
62 sprintf(
63 'Method %s::%s does not exist',
64 $method,
65 static::class
66 )
67 );
68 }
69
70 $macro = static::$macros[$method];
71
72 if ($macro instanceof Closure) {
73 $macro = $macro->bindTo($this, static::class);
74 }
75
76 return $macro(...$parameters);
77 }
78 }
79