/** * Given FileXml from a QPM package definition, this will return a valid QFileInManifest object for that XML element * @param SimpleXMLElement $objFileXml * @param QDirectoryToken[] $objDirectoryTokenArray * @return QFileInManifest */ public static function LoadFromQpmXml(SimpleXMLElement $objFileXml, $objDirectoryTokenArray) { $objFile = new QFileInManifest(); $objFile->DirectoryToken = (string) $objFileXml['directoryToken']; $objFile->Path = (string) $objFileXml['path']; $objFile->Md5 = (string) $objFileXml['md5']; if (array_key_exists($objFile->DirectoryToken, $objDirectoryTokenArray)) { $objFile->DirectoryTokenObject = $objDirectoryTokenArray[$objFile->DirectoryToken]; } else { return null; } if (is_file($objFile->GetFullPath())) { $objFile->RealPath = realpath($objFile->GetFullPath()); } $objFile->Base64Data = (string) $objFileXml; return $objFile; }
protected function SetupFileArray() { $this->objFileArrayByRealPath = array(); foreach ($this->objManifestXml->files->file as $objFileXml) { $objFileInManifest = new QFileInManifest(); $objFileInManifest->DirectoryToken = (string) $objFileXml['directoryToken']; $objFileInManifest->Path = (string) $objFileXml['path']; $objFileInManifest->Md5 = (string) $objFileXml['md5']; $objFileInManifest->DirectoryTokenObject = $this->objDirectoryArray[$objFileInManifest->DirectoryToken]; // Make sure this is valid and in-use DirectoryToken and that this file exists if (constant($objFileInManifest->DirectoryTokenObject->Token) && file_exists($objFileInManifest->GetFullPath())) { $objFileInManifest->RealPath = realpath($objFileInManifest->GetFullPath()); if ($objFileInManifest->RealPath) { $this->objFileArrayByRealPath[$objFileInManifest->RealPath] = $objFileInManifest; } } } }