X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FUtil%2FBasePath.php;h=f29c2e864ec414b7d1219344e4e14d6fd0b622f9;hb=295d90d496a56217383481fa7a0153e0ac48e38a;hp=56b0fa1fe9f78685c3e28a76bc0dc672c6195618;hpb=4af0119b7310e9731e60b11a14fd917580b95715;p=friendica.git diff --git a/src/Util/BasePath.php b/src/Util/BasePath.php index 56b0fa1fe9..f29c2e864e 100644 --- a/src/Util/BasePath.php +++ b/src/Util/BasePath.php @@ -2,8 +2,6 @@ namespace Friendica\Util; -use Friendica\Core; - class BasePath { /** @@ -12,23 +10,30 @@ class BasePath * It first checks for the internal variable, then for DOCUMENT_ROOT and * finally for PWD * - * @param string|null $basepath + * @param string|null $basePath The default base path + * @param array $server server arguments * * @return string * * @throws \Exception if directory isn't usable */ - public static function create($basepath) + public static function create($basePath, array $server = []) { - if (!$basepath && !empty($_SERVER['DOCUMENT_ROOT'])) { - $basepath = $_SERVER['DOCUMENT_ROOT']; + if ((!$basePath || !is_dir($basePath)) && !empty($server['DOCUMENT_ROOT'])) { + $basePath = $server['DOCUMENT_ROOT']; + } + + if ((!$basePath || !is_dir($basePath)) && !empty($server['PWD'])) { + $basePath = $server['PWD']; } - if (!$basepath && !empty($_SERVER['PWD'])) { - $basepath = $_SERVER['PWD']; + $basePath = self::getRealPath($basePath); + + if (!is_dir($basePath)) { + throw new \Exception(sprintf('\'%s\' is not a valid basepath', $basePath)); } - return self::getRealPath($basepath); + return $basePath; } /** @@ -51,43 +56,4 @@ class BasePath return $path; } } - - - /** - * @brief Checks if a given directory is usable for the system - * - * @param $directory - * @param bool $check_writable - * - * @return boolean the directory is usable - */ - public static function isDirectoryUsable($directory, $check_writable = true) - { - if ($directory == '') { - Core\Logger::log('Directory is empty. This shouldn\'t happen.', Core\Logger::DEBUG); - return false; - } - - if (!file_exists($directory)) { - Core\Logger::log('Path "' . $directory . '" does not exist for user ' . Core\System::getUser(), Core\Logger::DEBUG); - return false; - } - - if (is_file($directory)) { - Core\Logger::log('Path "' . $directory . '" is a file for user ' . Core\System::getUser(), Core\Logger::DEBUG); - return false; - } - - if (!is_dir($directory)) { - Core\Logger::log('Path "' . $directory . '" is not a directory for user ' . Core\System::getUser(), Core\Logger::DEBUG); - return false; - } - - if ($check_writable && !is_writable($directory)) { - Core\Logger::log('Path "' . $directory . '" is not writable for user ' . Core\System::getUser(), Core\Logger::DEBUG); - return false; - } - - return true; - } }