Completed
Push — master ( a52438...bf8826 )
by Henry
06:30
created

includes/Asset/Transport.php (1 issue)

Labels
Severity

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
namespace Redaxscript\Asset;
3
4
use Redaxscript\Language;
5
use Redaxscript\Registry;
6
use function is_array;
7
use function json_encode;
8
9
/**
10
 * class to transport javascript variables
11
 *
12
 * @since 3.0.0
13
 *
14
 * @package Redaxscript
15
 * @category Asset
16
 * @author Henry Ruhs
17
 */
18
19
class Transport
20
{
21
	/**
22
	 * registry array to be transported
23
	 *
24
	 * @since 3.0.0
25
	 *
26
	 * @var array
27
	 */
28
29
	protected array $_registryArray =
0 ignored issues
show
This code did not parse for me. Apparently, there is an error somewhere around this line:

Syntax error, unexpected T_ARRAY, expecting T_FUNCTION or T_CONST
Loading history...
30
	[
31
		'token',
32
		'loggedIn',
33
		'firstParameter',
34
		'secondParameter',
35
		'thirdParameter',
36
		'adminParameter',
37
		'tableParameter',
38
		'idParameter',
39
		'aliasParameter',
40
		'lastParameter',
41
		'firstTable',
42
		'secondTable',
43
		'thirdTable',
44
		'lastTable',
45
		'fullRoute',
46
		'fullTopRoute',
47
		'parameterRoute',
48
		'languageRoute',
49
		'templateRoute',
50
		'refreshRoute',
51
		'language',
52
		'template',
53
		'myBrowser',
54
		'myBrowserVersion',
55
		'myEngine',
56
		'myDesktop',
57
		'myMobile',
58
		'myTablet'
59
	];
60
61
	/**
62
	 * constructor of the class
63
	 *
64
	 * @since 2.4.0
65
	 *
66
	 * @param Registry $_registry instance of the registry class
67
	 * @param Language $_language instance of the language class
68
	 */
69
70
	public function __construct(protected Registry $_registry, protected Language $_language)
71
	{
72
	}
73
74
	/**
75
	 * get the array
76
	 *
77
	 * @since 3.0.0
78
	 *
79
	 * @return array
80
	 */
81
82
	public function getArray() : array
83
	{
84
		$transportArray =
85
		[
86 4
			'baseUrl' => $this->_registry->get('root') . '/',
87
			'generator' => $this->_language->get('_package')['name'],
88 4
			'language' => $this->_language->getArray(),
89 4
			'version' => $this->_language->get('_package')['version']
90 4
		];
91
92
		/* process registry */
93
94
		foreach ($this->_registryArray as $value)
95
		{
96
			$transportArray['registry'][$value] = $this->_registry->get($value);
97
		}
98
		return $transportArray;
99
	}
100 1
101
	/**
102
	 * render the javascript variables
103
	 *
104 1
	 * @since 3.0.0
105 1
	 *
106 1
	 * @param string $key
107 1
	 * @param string|array $value
108
	 *
109
	 * @return string|null
110
	 */
111
112 1
	public function render(string $key = null, $value = null) : ?string
113
	{
114 1
		$output = null;
115
		if (is_array($value))
116 1
		{
117
			foreach ($value as $keyChildren => $valueChildren)
118
			{
119
				$output .= 'window.' . $key . '.' . $keyChildren . ' = ' . json_encode($valueChildren) . ';';
120
			}
121
		}
122
		else if ($value)
123
		{
124
			$output = 'window.' . $key . ' = ' . json_encode($value) . ';';
125
		}
126
		return $output;
127
	}
128
}
129