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

includes/Asset/Transport.php (1 issue)

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