55use Pavlusha311245 \UnitPhpSdk \Config \Application \ProcessManagement \ApplicationProcess ;
66use Pavlusha311245 \UnitPhpSdk \Config \Application \ProcessManagement \ProcessIsolation ;
77use Pavlusha311245 \UnitPhpSdk \Config \Application \ProcessManagement \RequestLimit ;
8+ use Pavlusha311245 \UnitPhpSdk \Config \Listener ;
89use Pavlusha311245 \UnitPhpSdk \Enums \ApplicationTypeEnum ;
910use Pavlusha311245 \UnitPhpSdk \Exceptions \UnitException ;
1011use Pavlusha311245 \UnitPhpSdk \Interfaces \ApplicationInterface ;
1112
1213abstract class ApplicationAbstract implements ApplicationInterface
1314{
15+ private ?Listener $ _listener = null ;
16+
1417 private string $ _type ;
1518
1619 /**
1720 * Environment variables to be passed to the app
1821 *
1922 * @var array
2023 */
21- private array $ _environment ;
24+ private array $ _environment = [] ;
2225
2326 /**
2427 * Group name that runs the app process
2528 *
2629 * @var string
2730 */
28- protected string $ _group ;
31+ protected string $ _group = '' ;
2932
3033 /**
3134 * Username that runs the app process
3235 *
3336 * @var string
3437 */
35- protected string $ _user ;
38+ protected string $ _user = '' ;
3639
3740 /**
3841 * The app working directory.
3942 *
4043 * @var string
4144 */
42- private string $ _working_directory ;
45+ private string $ _working_directory = '' ;
4346
44- private string $ _name ;
47+ private string $ _name = '' ;
4548
4649 /**
4750 * 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
6063 /**
6164 * Static number of app processes or object options
6265 *
63- * @var ApplicationProcess|string
66+ * @var string| ApplicationProcess|null
6467 */
65- private ApplicationProcess | string $ _processes ;
68+ private string | null | ApplicationProcess $ _processes = null ;
6669
67- private RequestLimit $ _limits ;
70+ /**
71+ * Control requests limits
72+ *
73+ * @var RequestLimit|null
74+ */
75+ private ?RequestLimit $ _limits = null ;
6876
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 ;
7083
7184 public function __construct (array $ data = null )
7285 {
@@ -121,7 +134,7 @@ public function setEnvironment(array $environment): void
121134 $ this ->_environment = $ environment ;
122135 }
123136
124- public function getIsolation (): ProcessIsolation
137+ public function getIsolation (): ? ProcessIsolation
125138 {
126139 return $ this ->_isolation ;
127140 }
@@ -131,7 +144,7 @@ public function setIsolation(ProcessIsolation $isolation): void
131144 $ this ->_isolation = $ isolation ;
132145 }
133146
134- public function getProcesses (): ApplicationProcess |int
147+ public function getProcesses (): ApplicationProcess |int | null
135148 {
136149 return $ this ->_processes ;
137150 }
@@ -141,7 +154,7 @@ public function setProcesses(ApplicationProcess|int $processes): void
141154 $ this ->_processes = $ processes ;
142155 }
143156
144- public function getLimits (): RequestLimit
157+ public function getLimits (): ? RequestLimit
145158 {
146159 return $ this ->_limits ;
147160 }
@@ -251,4 +264,20 @@ public function parseFromArray(array $data): void
251264 $ this ->setLimits (new RequestLimit ($ data ['limits ' ]));
252265 }
253266 }
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+ }
254283}
0 commit comments