PluginProbe ʕ •ᴥ•ʔ
MailPoet – Newsletters, Email Marketing, and Automation / 5.36.0
MailPoet – Newsletters, Email Marketing, and Automation v5.36.0
5.36.0 5.35.1 5.35.0 5.34.3 5.34.2 5.34.1 5.34.0 5.33.1 5.33.0 5.32.0 5.31.0 5.30.0 5.29.0 5.28.1 5.28.0 5.27.0 5.26.0 5.26.1 5.25.0 5.24.0 4.43.0 4.43.1 4.44.0 4.44.1 4.45.0 4.46.0 4.47.0 4.48.0 4.48.1 4.48.2 4.49.0 4.49.1 4.5.0 4.5.1 4.5.2 4.50.0 4.50.1 4.51.0 4.51.1 4.51.2 4.52.0 4.53.0 4.54.0 4.55.0 4.56.0 4.57.0 4.58.0 4.58.1 4.58.2 4.6.0 4.6.1 4.6.2 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 5.0.0 5.0.1 5.0.2 5.1.0 5.1.1 5.10.0 5.10.1 5.11.0 5.12.0 5.12.1 5.12.10 5.12.11 5.12.12 5.12.13 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.13.0 5.13.1 5.13.2 5.14.0 5.14.1 5.14.2 5.14.3 5.15.0 5.15.1 5.16.0 5.16.1 5.16.2 5.16.3 5.16.4 5.17.0 5.17.1 5.17.2 5.17.3 5.17.4 5.17.5 5.17.6 5.18.0 5.19.0 5.2.0 5.2.1 5.2.2 5.2.3 5.20.0 5.21.0 5.21.1 5.21.2 5.21.3 5.22.0 5.22.1 5.22.2 5.22.3 5.22.4 5.23.0 5.23.1 5.23.2 5.3.0 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.3.7 5.4.0 5.4.1 5.4.2 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.6.3 5.6.4 5.7.0 5.7.1 5.8.0 5.8.1 5.9.0 3.0.0-beta.15 3.7.1 3.0.0-beta.16 3.7.2 3.0.0-beta.17 3.7.3 3.0.0-beta.18 3.7.4 3.0.0-beta.19 3.7.5 3.0.0-beta.2 3.7.6 3.0.0-beta.20 3.7.8 3.0.0-beta.21 3.70.0 3.0.0-beta.22 3.71.0 3.0.0-beta.23 3.71.1 3.0.0-beta.23.1 3.71.2 3.0.0-beta.23.2 3.71.3 3.0.0-beta.24 3.72.0 3.0.0-beta.25 3.73.0 3.0.0-beta.26 3.73.1 3.0.0-beta.27 3.73.2 3.0.0-beta.28 3.74.0 3.0.0-beta.29 3.74.1 3.0.0-beta.3 3.74.2 3.0.0-beta.30 3.74.3 3.0.0-beta.31 3.75.0 3.0.0-beta.32 3.75.1 3.0.0-beta.33 3.76.0 3.0.0-beta.33.1 3.77.0 3.0.0-beta.34.0.0 3.77.1 3.0.0-beta.36.0.0 3.78.0 3.0.0-beta.36.0.1 3.79.0 3.0.0-beta.36.2.0 3.8 3.0.0-beta.36.3.0 3.8.1 3.0.0-beta.36.3.1 3.8.2 3.0.0-beta.37.0.0 3.8.3 3.0.0-beta.4 3.8.4 3.0.0-beta.5 3.8.5 3.0.0-beta.6 3.8.6 3.0.0-beta.7 3.80.0 3.0.0-beta.7.1 3.81.0 3.0.0-beta.8 3.82.0 3.0.0-beta.9 3.83.0 3.0.0-rc.1.0.0 3.84.0 3.0.0-rc.1.0.1 3.84.1 3.0.0-rc.1.0.2 3.85.0 3.0.0-rc.1.0.3 3.85.1 3.0.0-rc.1.0.4 3.86.0 3.0.0-rc.2.0.0 3.87.0 3.0.0-rc.2.0.1 3.87.1 3.0.0-rc.2.0.2 3.87.2 3.0.0-rc.2.0.3 3.88.0 3.0.1 3.88.1 3.0.2 3.88.2 3.0.3 3.89.0 3.0.4 3.89.1 3.0.5 3.89.2 3.0.6 3.89.3 3.0.7 3.89.4 3.0.8 3.9.0 3.0.9 3.9.1 3.1.0 3.90.0 3.10 3.90.1 3.10.1 3.90.2 3.100.0 3.91.0 3.100.1 3.91.1 3.100.2 3.92.0 3.101.0 3.92.1 3.101.1 3.93.0 3.102.0 3.93.1 3.102.1 3.94.0 3.103.0 3.95.0 3.103.1 3.95.1 3.11.0 3.96.0 3.11.1 3.96.1 3.11.2 3.97.0 3.11.3 3.98.0 3.11.4 3.98.1 3.11.5 3.99.0 3.12.0 3.99.1 3.12.1 4.0.0 3.13.0 4.0.1 3.14.0 4.1.0 3.14.1 4.1.1 3.15.0 4.10.0 3.16.0 4.11.0 3.16.1 4.11.1 3.16.2 4.12.0 3.16.3 4.12.1 3.17.0 4.12.2 3.17.1 4.13.0 3.17.2 4.14.0 3.18.0 4.15.0 3.18.1 4.16.0 3.18.2 4.17.0 3.19.0 4.17.1 3.19.1 4.18.0 3.19.2 4.18.1 3.19.3 4.19.0 3.2.0 4.2.0 3.2.1 4.20.0 3.2.2 4.20.1 3.2.3 4.20.2 3.2.4 4.21.0 3.2.5 4.22.0 3.20.0 4.22.1 3.21.0 4.22.2 3.21.1 4.23.0 3.22.0 4.24.0 3.23.0 4.25.0 3.23.1 4.26.0 3.23.2 4.26.1 3.24.0 4.27.0 3.25.0 4.28.0 3.25.1 4.29.0 3.26.0 4.3.0 3.26.1 4.3.1 3.27.0 4.30.0 3.28.0 4.31.0 3.29.0 4.31.1 3.3.0 4.32.0 3.3.1 4.33.0 3.3.2 4.34.0 3.3.3 4.35.0 3.3.4 4.35.1 3.3.5 4.36.0 3.3.6 4.37.0 3.30.0 4.38.0 3.31.0 4.39.0 3.31.1 4.4.0 3.32.0 4.40.0 3.32.1 4.41.0 3.32.2 4.41.1 3.33.0 4.41.2 3.34.0 4.41.3 3.34.1 4.42.0 3.34.2 4.42.1 3.34.3 3.34.4 3.35.0 3.35.1 3.35.3 3.35.4 3.36.0 3.37.0 3.37.1 3.37.2 3.37.3 3.38.0 3.38.1 3.39.0 3.39.1 3.39.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.40.0 3.40.1 3.41.0 3.41.1 3.41.2 3.42.0 3.42.1 3.42.2 3.42.3 3.43.0 3.43.1 3.44.0 3.45.0 3.45.1 3.46.0 3.46.1 3.46.10 3.46.11 3.46.12 3.46.13 3.46.14 3.46.2 3.46.3 3.46.4 3.46.5 3.46.6 3.46.7 3.46.8 3.46.9 3.47.0 3.47.1 3.47.10 3.47.11 3.47.2 3.47.3 3.47.5 3.47.6 3.47.7 3.47.9 3.48.0 3.48.1 3.49.0 3.49.1 3.5.0 3.5.1 3.50.0 3.51.0 3.51.1 3.51.2 3.52.0 3.53.0 3.54.0 3.54.1 3.54.2 3.54.3 3.55.0 3.55.1 3.56.0 3.56.1 3.56.2 3.57.0 3.57.1 3.58.0 3.59.0 3.59.1 3.59.2 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.60.0 3.60.1 3.60.10 3.60.11 3.60.12 3.60.2 3.60.3 3.60.4 3.60.6 3.60.7 3.60.8 3.60.9 3.61.0 3.62.0 3.62.1 3.63.0 3.64.0 3.64.1 3.64.2 3.64.3 3.65.0 trunk 3.65.1 3.0.0 3.66.0 3.0.0-beta.1 3.67.0 3.0.0-beta.10 3.67.1 3.0.0-beta.11 3.68.0 3.0.0-beta.12 3.69.0 3.0.0-beta.13 3.69.1 3.0.0-beta.14 3.7.0
mailpoet / vendor-prefixed / doctrine / dbal / src / Portability / Converter.php
mailpoet / vendor-prefixed / doctrine / dbal / src / Portability Last commit date
Connection.php 2 years ago Converter.php 2 years ago Driver.php 2 years ago Middleware.php 2 years ago OptimizeFlags.php 2 years ago Result.php 2 years ago Statement.php 2 years ago index.php 2 years ago
Converter.php
137 lines
1 <?php
2 declare (strict_types=1);
3 namespace MailPoetVendor\Doctrine\DBAL\Portability;
4 if (!defined('ABSPATH')) exit;
5 use function array_change_key_case;
6 use function array_map;
7 use function array_reduce;
8 use function is_string;
9 use function rtrim;
10 use const CASE_LOWER;
11 use const CASE_UPPER;
12 final class Converter
13 {
14 public const CASE_LOWER = CASE_LOWER;
15 public const CASE_UPPER = CASE_UPPER;
16 private $convertNumeric;
17 private $convertAssociative;
18 private $convertOne;
19 private $convertAllNumeric;
20 private $convertAllAssociative;
21 private $convertFirstColumn;
22 public function __construct(bool $convertEmptyStringToNull, bool $rightTrimString, ?int $case)
23 {
24 $convertValue = $this->createConvertValue($convertEmptyStringToNull, $rightTrimString);
25 $convertNumeric = $this->createConvertRow($convertValue, null);
26 $convertAssociative = $this->createConvertRow($convertValue, $case);
27 $this->convertNumeric = $this->createConvert($convertNumeric, [self::class, 'id']);
28 $this->convertAssociative = $this->createConvert($convertAssociative, [self::class, 'id']);
29 $this->convertOne = $this->createConvert($convertValue, [self::class, 'id']);
30 $this->convertAllNumeric = $this->createConvertAll($convertNumeric, [self::class, 'id']);
31 $this->convertAllAssociative = $this->createConvertAll($convertAssociative, [self::class, 'id']);
32 $this->convertFirstColumn = $this->createConvertAll($convertValue, [self::class, 'id']);
33 }
34 public function convertNumeric($row)
35 {
36 return ($this->convertNumeric)($row);
37 }
38 public function convertAssociative($row)
39 {
40 return ($this->convertAssociative)($row);
41 }
42 public function convertOne($value)
43 {
44 return ($this->convertOne)($value);
45 }
46 public function convertAllNumeric(array $data) : array
47 {
48 return ($this->convertAllNumeric)($data);
49 }
50 public function convertAllAssociative(array $data) : array
51 {
52 return ($this->convertAllAssociative)($data);
53 }
54 public function convertFirstColumn(array $data) : array
55 {
56 return ($this->convertFirstColumn)($data);
57 }
58 private static function id($value)
59 {
60 return $value;
61 }
62 private static function convertEmptyStringToNull($value)
63 {
64 if ($value === '') {
65 return null;
66 }
67 return $value;
68 }
69 private static function rightTrimString($value)
70 {
71 if (!is_string($value)) {
72 return $value;
73 }
74 return rtrim($value);
75 }
76 private function createConvertValue(bool $convertEmptyStringToNull, bool $rightTrimString) : ?callable
77 {
78 $functions = [];
79 if ($convertEmptyStringToNull) {
80 $functions[] = [self::class, 'convertEmptyStringToNull'];
81 }
82 if ($rightTrimString) {
83 $functions[] = [self::class, 'rightTrimString'];
84 }
85 return $this->compose(...$functions);
86 }
87 private function createConvertRow(?callable $function, ?int $case) : ?callable
88 {
89 $functions = [];
90 if ($function !== null) {
91 $functions[] = $this->createMapper($function);
92 }
93 if ($case !== null) {
94 $functions[] = static function (array $row) use($case) : array {
95 return array_change_key_case($row, $case);
96 };
97 }
98 return $this->compose(...$functions);
99 }
100 private function createConvert(?callable $function, callable $id) : callable
101 {
102 if ($function === null) {
103 return $id;
104 }
105 return static function ($value) use($function) {
106 if ($value === \false) {
107 return \false;
108 }
109 return $function($value);
110 };
111 }
112 private function createConvertAll(?callable $function, callable $id) : callable
113 {
114 if ($function === null) {
115 return $id;
116 }
117 return $this->createMapper($function);
118 }
119 private function createMapper(callable $function) : callable
120 {
121 return static function (array $array) use($function) : array {
122 return array_map($function, $array);
123 };
124 }
125 private function compose(callable ...$functions) : ?callable
126 {
127 return array_reduce($functions, static function (?callable $carry, callable $item) : callable {
128 if ($carry === null) {
129 return $item;
130 }
131 return static function ($value) use($carry, $item) {
132 return $item($carry($value));
133 };
134 });
135 }
136 }
137