17 protected $m_aInitMessage = [];
28 if (empty($aInitMessage) ||
false === $aInitMessage)
30 define(
'HANDSHAKING',
true);
31 require_once(FRAMEWORK_ROOT .
'bootstrap.php');
33 throw new \SDExtension\SDException\SDException(EXCEPTION_MSG_NO_DATA, EXCEPTION_CODE_NO_DATA);
35 $this->m_aInitMessage = $aInitMessage;
49 switch ($this->GetFunction())
51 case HANDSHAKE_VERSION_INFORMATION:
52 define(
'HANDSHAKING',
true);
53 require_once(FRAMEWORK_ROOT .
'bootstrap.php');
56 case HANDSHAKE_SDD_CONFIGURATION:
57 define(
'HANDSHAKING',
true);
58 require_once(FRAMEWORK_ROOT .
'bootstrap.php');
61 case HANDSHAKE_EXTENSION_CONFIGURATION:
62 require_once(FRAMEWORK_ROOT .
'bootstrap.php');
76 public function SetHeader($sHeader =
"Content-Type: application/xml; charset=utf-8")
91 private function GetFunction()
93 return @arr_get($this->m_aInitMessage,
'@attributes.name',
'');
106 $sConfigFileVersion = CACHE_ROOT .
"version.php";
107 @save_config($this->m_aInitMessage,
true, $sConfigFileVersion);
108 $nActualVersionNumber = @arr_get($this->m_aInitMessage,
'versionid.major', 1) * 10000 + @arr_get($this->m_aInitMessage,
'versionid.minor', 0) * 100 + @arr_get($this->m_aInitMessage,
'versionid.maintenance', 0);
109 $sActualVersion = @arr_get($this->m_aInitMessage,
'versionid.major', 1) .
"." . @arr_get($this->m_aInitMessage,
'versionid.minor', 0) .
"." . @arr_get($this->m_aInitMessage,
'versionid.maintenance', 0);
110 $nRequiredVersionNumber = REQUIRED_SDD_VERSION_MAJOR * 10000 + REQUIRED_SDD_VERSION_MINOR * 100 + REQUIRED_SDD_VERSION_MAINTENANCE;
111 if ($nActualVersionNumber < $nRequiredVersionNumber)
113 $nRequiredVersion = REQUIRED_SDD_VERSION_MAJOR .
"." . REQUIRED_SDD_VERSION_MINOR .
"." . REQUIRED_SDD_VERSION_MAINTENANCE;
116 $sConfigFile = CONFIG_APP_ROOT .
"handshake_response1.php";
117 $aResponse = load_config($sConfigFile,
function() use ($sConfigFile)
120 throw new \SDExtension\SDException\SDException(EXCEPTION_MSG_CANT_LOAD_CONFIG_FILE .
": $sConfigFile.", EXCEPTION_CODE_CANT_LOAD_CONFIG_FILE);
123 return $sResponseXML;
136 $sSiteName = arr_get($this->m_aInitMessage,
'site.sitename.sitename', DEFAULT_SITE_NAME);
137 $sSdeLogs = arr_get($this->m_aInitMessage,
'paths.logs.site', DEFAULT_LOG_ROOT);
138 $sSiteSdeDataFolder = arr_get($this->m_aInitMessage,
'paths.files.temporary', DEFAULT_CONFIG_ROOT) . DS;
139 if (!file_exists($sSdeLogs))
141 @mkdir($sSdeLogs, 0777,
true);
143 if (!file_exists($sSiteSdeDataFolder))
145 @mkdir($sSiteSdeDataFolder, 0777,
true);
147 @rename(CACHE_ROOT .
"version.php", $sSiteSdeDataFolder .
"version.php");
148 @save_config($this->m_aInitMessage,
false, $sSiteSdeDataFolder .
"details.php");
150 'sSiteName' => $sSiteName,
151 'sSdeLogs' => $sSdeLogs,
152 'sSiteSdeDataFolder' => $sSiteSdeDataFolder,
153 ],
false, CACHE_ROOT .
"details_temp.php");
154 $sConfigFile = CONFIG_APP_ROOT .
"handshake_response2.php";
155 $aResponse = load_config($sConfigFile,
function() use ($sConfigFile)
158 throw new \SDExtension\SDException\SDException(EXCEPTION_MSG_CANT_LOAD_CONFIG_FILE .
": $sConfigFile.", EXCEPTION_CODE_CANT_LOAD_CONFIG_FILE);
163 return $sResponseXML;
180 $sConfigFile = CONFIG_APP_ROOT .
"handshake_response3.php";
181 $aResponse = load_config($sConfigFile,
function() use ($sConfigFile)
184 throw new \SDExtension\SDException\SDException(EXCEPTION_MSG_CANT_LOAD_CONFIG_FILE .
": $sConfigFile.", EXCEPTION_CODE_CANT_LOAD_CONFIG_FILE);
192 return $sResponseXML;
201 abstract protected function AppInit();
static get($sChannel="default", $sLogRoot="")
static init($sChannel="default", $sLogRoot="")
__construct($aInitMessage)
SetHeader($sHeader="Content-Type: application/xml; charset=utf-8")
static & createXML($node_name, $arr=array(), $namespace=null)