PluginProbe ʕ •ᴥ•ʔ
Independent Analytics – WordPress Analytics Plugin / 2.15.3
Independent Analytics – WordPress Analytics Plugin v2.15.3
2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 1.19.1 1.2 1.20.0 1.21.0 1.22.0 1.22.1 1.23.0 1.23.1 1.24.0 1.24.1 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.28.1 1.28.2 1.28.3 1.29.0 1.3 1.30.0 1.30.1 1.4 1.5 1.6 1.7 1.8 1.9 2.0.0 2.0.1 2.1.4 2.1.5 2.1.6 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.10 2.11.2 2.11.3 2.11.4 2.11.5 2.11.6 2.11.7 2.11.8 2.11.9 2.12.0 2.12.1 2.12.2 2.13.1 2.13.2 2.13.5 2.13.6 2.14.0 2.14.1 2.14.2 2.14.4 2.14.6 2.14.7 2.14.8 2.14.9 2.2.0 2.2.1 2.3.1 2.3.2 2.4.2 2.4.3 2.5.0 2.5.1 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.7.0 2.7.1 2.7.2 2.7.3 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7
independent-analytics / vendor / illuminate / database / Concerns / CompilesJsonPaths.php
independent-analytics / vendor / illuminate / database / Concerns Last commit date
BuildsQueries.php 3 weeks ago CompilesJsonPaths.php 3 weeks ago ExplainsQueries.php 2 years ago ManagesTransactions.php 3 weeks ago ParsesSearchPath.php 3 weeks ago
CompilesJsonPaths.php
53 lines
1 <?php
2
3 namespace IAWPSCOPED\Illuminate\Database\Concerns;
4
5 use IAWPSCOPED\Illuminate\Support\Str;
6 /** @internal */
7 trait CompilesJsonPaths
8 {
9 /**
10 * Split the given JSON selector into the field and the optional path and wrap them separately.
11 *
12 * @param string $column
13 * @return array
14 */
15 protected function wrapJsonFieldAndPath($column)
16 {
17 $parts = \explode('->', $column, 2);
18 $field = $this->wrap($parts[0]);
19 $path = \count($parts) > 1 ? ', ' . $this->wrapJsonPath($parts[1], '->') : '';
20 return [$field, $path];
21 }
22 /**
23 * Wrap the given JSON path.
24 *
25 * @param string $value
26 * @param string $delimiter
27 * @return string
28 */
29 protected function wrapJsonPath($value, $delimiter = '->')
30 {
31 $value = \preg_replace("/([\\\\]+)?\\'/", "''", $value);
32 $jsonPath = \IAWPSCOPED\collect(\explode($delimiter, $value))->map(fn($segment) => $this->wrapJsonPathSegment($segment))->join('.');
33 return "'\$" . (\str_starts_with($jsonPath, '[') ? '' : '.') . $jsonPath . "'";
34 }
35 /**
36 * Wrap the given JSON path segment.
37 *
38 * @param string $segment
39 * @return string
40 */
41 protected function wrapJsonPathSegment($segment)
42 {
43 if (\preg_match('/(\\[[^\\]]+\\])+$/', $segment, $parts)) {
44 $key = Str::beforeLast($segment, $parts[0]);
45 if (!empty($key)) {
46 return '"' . $key . '"' . $parts[0];
47 }
48 return $parts[0];
49 }
50 return '"' . $segment . '"';
51 }
52 }
53