PluginProbe ʕ •ᴥ•ʔ
Flexible Checkout Fields for WooCommerce – WooCommerce Checkout Manager / trunk
Flexible Checkout Fields for WooCommerce – WooCommerce Checkout Manager vtrunk
4.1.39 4.1.38 trunk 1.2 1.2.1 1.2.2 1.2.3 1.3 1.3.1 1.3.2 1.3.3 1.4 1.5 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6 1.6.1 1.6.10 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7 1.7.1 1.7.2 1.8 1.8.1 1.8.2 1.8.3 1.9.0 1.9.1 1.9.2 1.9.3 2.0.0 2.0.1 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.1.0 2.1.1 2.1.4 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.3.1 2.3.2 2.3.3 2.3.4 2.4.0 2.4.1 2.4.10 2.4.11 2.4.12 2.4.13 2.4.14 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.0 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.6.0 2.7.0 2.7.1 2.8.0 2.9.0 2.9.1 2.9.2 3.0.0 3.0.1 3.0.10 3.0.11 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.2 3.1.3 3.2.0 3.2.1 3.2.2 3.2.3 3.2.4 3.3.0 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.10 3.5.11 3.5.12 3.5.13 3.5.14 3.5.15 3.5.16 3.5.17 3.5.18 3.5.19 3.5.2 3.5.3 3.5.4 3.5.5 3.5.6 3.5.7 3.5.8 3.5.9 3.6.0 4.0.0 4.1.0 4.1.1 4.1.10 4.1.11 4.1.12 4.1.13 4.1.14 4.1.15 4.1.16 4.1.17 4.1.18 4.1.19 4.1.2 4.1.20 4.1.21 4.1.22 4.1.23 4.1.24 4.1.25 4.1.26 4.1.27 4.1.28 4.1.29 4.1.3 4.1.30 4.1.31 4.1.32 4.1.34 4.1.35 4.1.36 4.1.37 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9
flexible-checkout-fields / src / Collections / RouteParamBag.php
flexible-checkout-fields / src / Collections Last commit date
RouteParamBag.php 1 week ago
RouteParamBag.php
71 lines
1 <?php
2
3 namespace WPDesk\FCF\Free\Collections;
4
5 use Doctrine\Common\Collections\ArrayCollection;
6 use WPDesk\FCF\Free\Exception\UnexpectedParamException;
7
8 /**
9 * Route Parameters as collection.
10 *
11 * @template TKey of string
12 * @template T
13 * @extends ArrayCollection<TKey, T>
14 */
15 class RouteParamBag extends ArrayCollection {
16
17 /**
18 * Returns the nested array as collection.
19 *
20 * @param string $key
21 * @throws UnexpectedParamException
22 *
23 * @return RouteParamBag<TKey, T>
24 */
25 public function collection( string $key ): RouteParamBag {
26 if ( ! is_array( $this->get( $key ) ) ) {
27 throw new UnexpectedParamException(
28 sprintf(
29 'Parameter "%s" is not an array.',
30 $key
31 )
32 );
33 }
34
35 return new static( $this->get( $key ) );
36 }
37
38 /**
39 * Returns the parameter as string.
40 *
41 * @param string $key
42 * @throws UnexpectedParamException
43 *
44 * @return string
45 */
46 public function getString( string $key ): string {
47 $value = $this->get( $key );
48 if ( ! \is_scalar( $value ) && ! $value instanceof \Stringable ) {
49 throw new UnexpectedParamException(
50 sprintf(
51 'Parameter value "%s" cannot be converted to "string".',
52 $key
53 )
54 );
55 }
56
57 return (string) $value;
58 }
59
60 /**
61 * Reduce the array to a single value using a callback function.
62 *
63 * @param \Closure $callback The callback function to apply
64 * @param mixed $initial The initial value
65 * @return mixed The single value resulting from the reduction
66 */
67 public function reduce( \Closure $callback, $initial = null ) {
68 return array_reduce( $this->toArray(), $callback, $initial );
69 }
70 }
71