/** * Make directory: * - Make directory and sub directory * * @param string $directory Path of directory * @param int $mode Define chmod of path directory * @return bool Info if create the folder */ public function make(string $directory, int $mode = null) { if (!empty($directory)) { if ($folders = explode(DIRECTORY_SEPARATOR, Path::replaceOSSeparator($directory))) { $fullpath = null; if (empty($mode)) { $mode = 0777; } foreach ($folders as $folder) { if (!empty($folder)) { $fullpath .= DIRECTORY_SEPARATOR . $folder; $this->createDirectory($fullpath, $mode); } } } } return file_exists($directory); }
/** * Delete directory: * - Delete directory and sub directory * * @param string $directory Path of directory * @return bool Info if delete directory */ public final function rm(string $directory) { if (is_dir($directory)) { foreach (new DirectoryIterator(Path::replaceOSSeparator($directory)) as $fileInfo) { if (!$fileInfo->isDot()) { if ($fileInfo->isDir()) { $this->rm($fileInfo->getPathname()); @rmdir($fileInfo->getPathname()); } else { if ($fileInfo->isFile()) { @unlink($fileInfo->getPathname()); } } } } @rmdir($directory); } return file_exists($directory); }
/** * Load package: * - Identify and load package language; * * @param string $package Package of language * @return stdClass Return package of language */ private static function loadPackage(string $package) { $language = null; if (!empty($package)) { $filename = null; if ($packageData = explode(":", $package)) { if (!empty($packageData[0])) { $filename .= Lang::$root[$packageData[0]]; } if (!empty($packageData[1])) { $filename .= DIRECTORY_SEPARATOR . $packageData[1]; } $pathaname = Lang::selectPackage($filename); if (file_exists($pathaname)) { $pathaname = Path::replaceOSSeparator($pathaname); $decode = json_decode(file_get_contents((new SplFileObject($pathaname, "r"))->getPathname())); $language = JSON_ERROR_NONE == json_last_error() ? $decode : null; } } } return $language; }