EVOLUTION-MANAGER
Edit File: class.package.php
<?php /** * Class used to update and edit web server configuration files * for .htaccess, web.config and user.ini * * Standard: PSR-2 * @link http://www.php-fig.org/psr/psr-2 Full Documentation * * @package SC\DUPX\Crypt * */ defined('ABSPATH') || defined('DUPXABSPATH') || exit; /** * Package related functions * */ final class DUPX_Package { /** * * @staticvar bool|string $packageHash * @return bool|string false if fail * @throws Exception */ public static function getPackageHash() { static $packageHash = null; if (is_null($packageHash)) { if (($packageHash = DUPX_Boot::getPackageHash()) === false) { throw new Exception('PACKAGE ERROR: can\'t find package hash'); } } return $packageHash; } /** * * @staticvar string $fileHash * @return string */ public static function getArchiveFileHash() { static $fileHash = null; if (is_null($fileHash)) { $fileHash = preg_replace('/^.+_([a-z0-9]+)_[0-9]{14}_archive\.(?:daf|zip)$/', '$1', DUPX_Security::getInstance()->getArchivePath()); } return $fileHash; } /** * * @staticvar string $archivePath * @return bool|string false if fail * @throws Exception */ public static function getPackageArchivePath() { static $archivePath = null; if (is_null($archivePath)) { $path = DUPX_INIT.'/'.DUPX_Boot::ARCHIVE_PREFIX.self::getPackageHash().DUPX_Boot::ARCHIVE_EXTENSION; if (!file_exists($path)) { throw new Exception('PACKAGE ERROR: can\'t read package path: '.$path); } else { $archivePath = $path; } } return $archivePath; } /** * Returns a save-to-edit wp-config file * * @return string * @throws Exception */ public static function getWpconfigArkPath() { return DUPX_Orig_File_Manager::getInstance()->getEntryStoredPath(DUPX_ServerConfig::CONFIG_ORIG_FILE_WPCONFIG_ID); } /** * * @return string * @throws Exception */ public static function getManualExtractFile() { return DUPX_INIT.'/dup-manual-extract__'.self::getPackageHash(); } /** * * @staticvar type $path * @return string */ public static function getWpconfigSamplePath() { static $path = null; if (is_null($path)) { $path = DUPX_INIT.'/assets/wp-config-sample.php'; } return $path; } /** * * @staticvar string $path * @return string */ public static function getSqlFilePath() { static $path = null; if (is_null($path)) { $path = DUPX_INIT.'/dup-database__'.self::getPackageHash().'.sql'; } return $path; } /** * * @staticvar string $dirsPath * @return string */ public static function getDirsListPath() { static $path = null; if (is_null($path)) { $path = DUPX_INIT.'/dup-scanned-dirs__'.self::getPackageHash().'.txt'; } return $path; } /** * * @staticvar string $dirsPath * @return string */ public static function getFilesListPath() { static $path = null; if (is_null($path)) { $path = DUPX_INIT.'/dup-scanned-files__'.self::getPackageHash().'.txt'; } return $path; } /** * * @staticvar string $path * @return string */ public static function getScanJsonPath() { static $path = null; if (is_null($path)) { $path = DUPX_INIT.'/dup-scan__'.self::getPackageHash().'.json'; } return $path; } /** * * @return int */ public static function getSqlFileSize() { return (is_readable(self::getSqlFilePath())) ? (int) filesize(self::getSqlFilePath()) : 0; } /** * * @param callable $callback * @return boolean * @throws Exception */ public static function foreachDirCallback($callback) { if (!is_callable($callback)) { throw new Exception('Not valid callback'); } $dirFiles = DUPX_Package::getDirsListPath(); if (($handle = fopen($dirFiles, "r")) === false) { throw new Exception('Can\'t open dirs file list'); } while (($line = fgets($handle)) !== false) { if (($info = json_decode($line)) === null) { throw new Exception('Invalid json line in dirs file: '.$line); } call_user_func($callback, $info); } fclose($handle); return true; } }