5
5
use Pavlusha311245 \UnitPhpSdk \Config \Application \ProcessManagement \ApplicationProcess ;
6
6
use Pavlusha311245 \UnitPhpSdk \Config \Application \ProcessManagement \ProcessIsolation ;
7
7
use Pavlusha311245 \UnitPhpSdk \Config \Application \ProcessManagement \RequestLimit ;
8
+ use Pavlusha311245 \UnitPhpSdk \Config \Listener ;
8
9
use Pavlusha311245 \UnitPhpSdk \Enums \ApplicationTypeEnum ;
9
10
use Pavlusha311245 \UnitPhpSdk \Exceptions \UnitException ;
10
11
use Pavlusha311245 \UnitPhpSdk \Interfaces \ApplicationInterface ;
11
12
12
13
abstract class ApplicationAbstract implements ApplicationInterface
13
14
{
15
+ private ?Listener $ _listener = null ;
16
+
14
17
private string $ _type ;
15
18
16
19
/**
17
20
* Environment variables to be passed to the app
18
21
*
19
22
* @var array
20
23
*/
21
- private array $ _environment ;
24
+ private array $ _environment = [] ;
22
25
23
26
/**
24
27
* Group name that runs the app process
25
28
*
26
29
* @var string
27
30
*/
28
- protected string $ _group ;
31
+ protected string $ _group = '' ;
29
32
30
33
/**
31
34
* Username that runs the app process
32
35
*
33
36
* @var string
34
37
*/
35
- protected string $ _user ;
38
+ protected string $ _user = '' ;
36
39
37
40
/**
38
41
* The app working directory.
39
42
*
40
43
* @var string
41
44
*/
42
- private string $ _working_directory ;
45
+ private string $ _working_directory = '' ;
43
46
44
- private string $ _name ;
47
+ private string $ _name = '' ;
45
48
46
49
/**
47
50
* The file path to which Unit redirects the application's error stream output in --no-daemon mode.
@@ -60,13 +63,23 @@ abstract class ApplicationAbstract implements ApplicationInterface
60
63
/**
61
64
* Static number of app processes or object options
62
65
*
63
- * @var ApplicationProcess|string
66
+ * @var string| ApplicationProcess|null
64
67
*/
65
- private ApplicationProcess | string $ _processes ;
68
+ private string | null | ApplicationProcess $ _processes = null ;
66
69
67
- private RequestLimit $ _limits ;
70
+ /**
71
+ * Control requests limits
72
+ *
73
+ * @var RequestLimit|null
74
+ */
75
+ private ?RequestLimit $ _limits = null ;
68
76
69
- private ProcessIsolation $ _isolation ;
77
+ /**
78
+ * You can use namespace and file system isolation for your apps if Unit’s underlying OS supports them
79
+ *
80
+ * @var ProcessIsolation|null
81
+ */
82
+ private ?ProcessIsolation $ _isolation = null ;
70
83
71
84
public function __construct (array $ data = null )
72
85
{
@@ -121,7 +134,7 @@ public function setEnvironment(array $environment): void
121
134
$ this ->_environment = $ environment ;
122
135
}
123
136
124
- public function getIsolation (): ProcessIsolation
137
+ public function getIsolation (): ? ProcessIsolation
125
138
{
126
139
return $ this ->_isolation ;
127
140
}
@@ -131,7 +144,7 @@ public function setIsolation(ProcessIsolation $isolation): void
131
144
$ this ->_isolation = $ isolation ;
132
145
}
133
146
134
- public function getProcesses (): ApplicationProcess |int
147
+ public function getProcesses (): ApplicationProcess |int | null
135
148
{
136
149
return $ this ->_processes ;
137
150
}
@@ -141,7 +154,7 @@ public function setProcesses(ApplicationProcess|int $processes): void
141
154
$ this ->_processes = $ processes ;
142
155
}
143
156
144
- public function getLimits (): RequestLimit
157
+ public function getLimits (): ? RequestLimit
145
158
{
146
159
return $ this ->_limits ;
147
160
}
@@ -251,4 +264,20 @@ public function parseFromArray(array $data): void
251
264
$ this ->setLimits (new RequestLimit ($ data ['limits ' ]));
252
265
}
253
266
}
267
+
268
+ /**
269
+ * @param Listener $listener
270
+ */
271
+ public function setListener (Listener $ listener ): void
272
+ {
273
+ $ this ->_listener = $ listener ;
274
+ }
275
+
276
+ /**
277
+ * @return Listener
278
+ */
279
+ public function getListener (): ?Listener
280
+ {
281
+ return $ this ->_listener ;
282
+ }
254
283
}
0 commit comments