/** * Testing the deleteDirectoryContents() method. * * @since 2.0 */ public function testDeleteDirectoryContents() { if (!file_exists('/tmp/alphatestdir')) { mkdir('/tmp/alphatestdir'); } mkdir('/tmp/alphatestdir/subdir'); $this->assertTrue(file_exists('/tmp/alphatestdir/subdir'), 'Testing the deleteDirectoryContents() method'); FileUtils::deleteDirectoryContents('/tmp/alphatestdir'); $this->assertFalse(file_exists('/tmp/alphatestdir/subdir'), 'Testing the deleteDirectoryContents() method'); }
/** * Handle POST requests. * * @param Alpha\Util\Http\Response $request * * @throws Alpha\Exception\SecurityException * @throws Alpha\Exception\IllegalArguementException * * @return Alpha\Util\Http\Response * * @since 1.0 */ public function doPOST($request) { self::$logger->debug('>>doPOST($request=[' . var_export($request, true) . '])'); $params = $request->getParams(); try { // check the hidden security fields before accepting the form POST data if (!$this->checkSecurityFields()) { throw new SecurityException('This page cannot accept post data from remote servers!'); } if (!is_array($params)) { throw new IllegalArguementException('Bad $params [' . var_export($params, true) . '] passed to doPOST method!'); } if (isset($params['clearCache']) && $params['clearCache'] == 'true') { try { FileUtils::deleteDirectoryContents($this->dataDir, array('.htaccess', 'html', 'images', 'pdf', 'xls')); $this->setStatusMessage(View::displayUpdateMessage('Cache contents deleted successfully.')); $config = ConfigProvider::getInstance(); $sessionProvider = $config->get('session.provider.name'); $session = SessionProviderFactory::getInstance($sessionProvider); self::$logger->info('Cache contents deleted successfully by user [' . $session->get('currentUser')->get('displayName') . '].'); } catch (AlphaException $e) { self::$logger->error($e->getMessage()); $this->setStatusMessage(View::displayErrorMessage($e->getMessage())); } } return $this->doGET($request); } catch (SecurityException $e) { $this->setStatusMessage(View::displayErrorMessage($e->getMessage())); self::$logger->warn($e->getMessage()); } catch (IllegalArguementException $e) { self::$logger->error($e->getMessage()); $this->setStatusMessage(View::displayErrorMessage($e->getMessage())); } $body = View::displayPageHead($this); $message = $this->getStatusMessage(); if (!empty($message)) { $body .= $message; } $body .= View::displayPageFoot($this); self::$logger->debug('<<doPOST'); return new Response(200, $body, array('Content-Type' => 'text/html')); }
/** * {@inheritdoc} */ public function doTask() { $config = ConfigProvider::getInstance(); self::$logger = new Logger('BackupTask'); self::$logger->setLogProviderFile($config->get('app.file.store.dir') . 'logs/tasks.log'); if (!file_exists($config->get('backup.dir'))) { mkdir($config->get('backup.dir')); } $targetDir = $config->get('backup.dir') . date('Y-m-d') . '/'; if (file_exists($targetDir)) { FileUtils::deleteDirectoryContents($targetDir); } if (!file_exists($targetDir)) { mkdir($targetDir); } $back = new BackupUtils(); $back->backUpAttachmentsAndLogs($targetDir); $back->backUpDatabase($targetDir); $additionalDirectories = explode(',', $config->get('backup.include.dirs')); if (count($additionalDirectories) > 0) { foreach ($additionalDirectories as $additionalDirectory) { FileUtils::copy($additionalDirectory, $targetDir . basename($additionalDirectory)); } } if ($config->get('backup.compress')) { FileUtils::zip($targetDir, $config->get('backup.dir') . date('Y-m-d') . '.zip'); // we can safely remove the uncompressed files now to save space... FileUtils::deleteDirectoryContents($targetDir . 'logs'); rmdir($targetDir . 'logs'); FileUtils::deleteDirectoryContents($targetDir . 'attachments'); rmdir($targetDir . 'attachments'); unlink($targetDir . $config->get('db.name') . '_' . date('Y-m-d') . '.sql'); if (count($additionalDirectories) > 0) { foreach ($additionalDirectories as $additionalDirectory) { FileUtils::deleteDirectoryContents($targetDir . basename($additionalDirectory)); rmdir($targetDir . basename($additionalDirectory)); } } } }