private function deleteDirectories($directory) { foreach (new Gpf_Io_DirectoryIterator($directory, '', false, true) as $fullFileName => $fileName) { $this->checkInterruption(); $this->deleteDirectories($fullFileName); $file = new Gpf_Io_File($fullFileName); $file->rmdir(); } }
private function copyFilesToCacheZipFolder($unpackedZipFolderPath, $cacheZipFolderPath) { $unpackedZipFolder = new Gpf_Io_File($unpackedZipFolderPath); $cacheZipFolder = new Gpf_Io_File($cacheZipFolderPath); if ($cacheZipFolder->isExists()) { $cacheZipFolder->emptyFiles(true); $cacheZipFolder->rmdir(); } $cacheZipFolder->mkdir(); $unpackedZipFolder->recursiveCopy($cacheZipFolder); }
private function checkAccountsWritable() { $requirement = new Gpf_Install_Requirement(); $requirement->setPositiveName($this->_('Configuration directory is writable')); $requirement->setNegativeName($this->_('Configuration directory has to be writable')); $accountDirectory = Gpf_Paths::getInstance()->getAccountsPath(); $result = @is_dir($accountDirectory) && is_writable($accountDirectory); if ($result) { $this->deleteIfExistsTestFilesAndDir($accountDirectory); $testFile = new Gpf_Io_File($accountDirectory . 'check'); $subTestFile = new Gpf_Io_File($accountDirectory . 'check/subcheck'); try { $testFile->open('w'); $testFile->close(); $testFile->delete(); } catch (Exception $e) { $result = false; $requirement->setNegativeName($this->_('Could not create file inside %s directory', $accountDirectory)); } try { $testFile->mkdir(); $testFile->rmdir(); } catch (Exception $e) { $result = false; $requirement->setNegativeName($this->_('Could not create directory inside %s directory', $accountDirectory)); } try { $testFile->mkdir(); $subTestFile->open('w'); $subTestFile->close(); $subTestFile->delete(); $subTestFile->mkdir(); $subTestFile->rmdir(); $testFile->rmdir(); } catch (Exception $e) { $result = false; $requirement->setNegativeName($this->_('Could not create file or directory inside %s subdirectory. Probably safe mode is not properly configured.', $accountDirectory)); } } $requirement->setResult($result); $description = $this->_('Please make directory %s and all subdirectories writable by webserver.', $accountDirectory); if (stripos(PHP_OS, 'win') === false) { $description .= $this->_('On unix-like systems you can type "chmod -R 777 %s".', $accountDirectory); } $description .= $this->_('On any system you can set write permissions using your favourite FTP client.'); $requirement->setFixDescription($description); $this->addRequirement($requirement); }
private function deleteTempDir(Gpf_Io_File $dir){ $dir->emptyFiles(true); $dir->rmdir(); }