Recursively deletes a directory.
public static unlinkRecursive ( string $dir, boolean $deleteRootToo, Closure $beforeUnlink = null ) | ||
$dir | string | Path of the directory to delete. |
$deleteRootToo | boolean | If true, `$dir` is deleted, otherwise just its contents. |
$beforeUnlink | Closure | An optional closure to execute on a file path before unlinking. |
static function update() { $errors = array(); try { $checker = new DoNotTrackHeaderChecker(); // enable DoNotTrack check in PrivacyManager if DoNotTrack plugin was enabled if (\Piwik\Plugin\Manager::getInstance()->isPluginActivated('DoNotTrack')) { $checker->activate(); } // enable IP anonymization if AnonymizeIP plugin was enabled if (\Piwik\Plugin\Manager::getInstance()->isPluginActivated('AnonymizeIP')) { IPAnonymizer::activate(); } } catch (\Exception $ex) { // pass } // disable & delete old plugins $oldPlugins = array('DoNotTrack', 'AnonymizeIP'); foreach ($oldPlugins as $plugin) { try { \Piwik\Plugin\Manager::getInstance()->deactivatePlugin($plugin); } catch (\Exception $e) { } $dir = PIWIK_INCLUDE_PATH . "/plugins/{$plugin}"; if (file_exists($dir)) { Filesystem::unlinkRecursive($dir, true); } if (file_exists($dir)) { $errors[] = "Please delete this directory manually (eg. using your FTP software): {$dir} \n"; } } if (!empty($errors)) { throw new \Exception("Warnings during the update: <br>" . implode("<br>", $errors)); } }
static function update() { Updater::updateDatabase(__FILE__, self::getSql()); $obsoleteDirectories = array('/plugins/AdminHome', '/plugins/Home', '/plugins/PluginsAdmin'); foreach ($obsoleteDirectories as $dir) { if (file_exists(PIWIK_INCLUDE_PATH . $dir)) { Filesystem::unlinkRecursive(PIWIK_INCLUDE_PATH . $dir, true); } } }
public function doUpdate(Updater $updater) { $updater->executeMigrationQueries(__FILE__, $this->getMigrationQueries($updater)); $obsoleteDirectories = array('/plugins/AdminHome', '/plugins/Home', '/plugins/PluginsAdmin'); foreach ($obsoleteDirectories as $dir) { if (file_exists(PIWIK_INCLUDE_PATH . $dir)) { Filesystem::unlinkRecursive(PIWIK_INCLUDE_PATH . $dir, true); } } }
public static function update() { $errors = array(); // Deleting old plugins $obsoleteDirectories = array(PIWIK_INCLUDE_PATH . '/plugins/Referers', PIWIK_INCLUDE_PATH . '/plugins/PDFReports'); foreach ($obsoleteDirectories as $dir) { if (file_exists($dir)) { Filesystem::unlinkRecursive($dir, true); } if (file_exists($dir)) { $errors[] = "Please delete this directory manually (eg. using your FTP software): {$dir} \n"; } } if (!empty($errors)) { throw new \Exception("Warnings during the update: <br>" . implode("<br>", $errors)); } }
public function doUpdate(Updater $updater) { $errors = array(); // Deleting old libs $obsoleteDirectories = array(PIWIK_INCLUDE_PATH . '/libs/Smarty', PIWIK_INCLUDE_PATH . '/libs/Event'); foreach ($obsoleteDirectories as $dir) { if (file_exists($dir)) { Filesystem::unlinkRecursive($dir, true); } if (file_exists($dir)) { $errors[] = "Please delete this directory manually (eg. using your FTP software): {$dir} \n"; } } if (!empty($errors)) { throw new \Exception("Warnings during the update: <br>" . implode("<br>", $errors)); } }
static function update() { $obsoleteFiles = array(PIWIK_INCLUDE_PATH . '/core/Db/Mysqli.php'); foreach ($obsoleteFiles as $obsoleteFile) { if (file_exists($obsoleteFile)) { @unlink($obsoleteFile); } } $obsoleteDirectories = array(PIWIK_INCLUDE_PATH . '/core/Db/Pdo'); foreach ($obsoleteDirectories as $dir) { if (file_exists($dir)) { Filesystem::unlinkRecursive($dir, true); } } // force regeneration of cache files Piwik::setUserHasSuperUserAccess(); $allSiteIds = API::getInstance()->getAllSitesId(); Cache::regenerateCacheWebsiteAttributes($allSiteIds); }
/** * A function to delete all cache entries in the directory */ public function deleteAll() { $self = $this; $beforeUnlink = function ($path) use($self) { $self->opCacheInvalidate($path); }; Filesystem::unlinkRecursive($this->cachePath, $deleteRootToo = false, $beforeUnlink); }
private function oneClick_Copy() { /* * Make sure the execute bit is set for this shell script */ if (!Rules::isBrowserTriggerEnabled()) { @chmod($this->pathRootExtractedPiwik . '/misc/cron/archive.sh', 0755); } $model = new Model(); /* * Copy all files to PIWIK_INCLUDE_PATH. * These files are accessed through the dispatcher. */ Filesystem::copyRecursive($this->pathRootExtractedPiwik, PIWIK_INCLUDE_PATH); $model->removeGoneFiles($this->pathRootExtractedPiwik, PIWIK_INCLUDE_PATH); /* * These files are visible in the web root and are generally * served directly by the web server. May be shared. */ if (PIWIK_INCLUDE_PATH !== PIWIK_DOCUMENT_ROOT) { /* * Copy PHP files that expect to be in the document root */ $specialCases = array('/index.php', '/piwik.php', '/js/index.php'); foreach ($specialCases as $file) { Filesystem::copy($this->pathRootExtractedPiwik . $file, PIWIK_DOCUMENT_ROOT . $file); } /* * Copy the non-PHP files (e.g., images, css, javascript) */ Filesystem::copyRecursive($this->pathRootExtractedPiwik, PIWIK_DOCUMENT_ROOT, true); $model->removeGoneFiles($this->pathRootExtractedPiwik, PIWIK_DOCUMENT_ROOT); } /* * Config files may be user (account) specific */ if (PIWIK_INCLUDE_PATH !== PIWIK_USER_PATH) { Filesystem::copyRecursive($this->pathRootExtractedPiwik . '/config', PIWIK_USER_PATH . '/config'); } Filesystem::unlinkRecursive($this->pathRootExtractedPiwik, true); Filesystem::clearPhpCaches(); }
/** * @param $pathExtracted */ private function removeFolderIfExists($pathExtracted) { Filesystem::unlinkRecursive($pathExtracted, true); }
public static function deletePluginFromFilesystem($plugin) { Filesystem::unlinkRecursive(PIWIK_INCLUDE_PATH . '/plugins/' . $plugin, $deleteRootToo = true); }
public function tearDown() { Filesystem::unlinkRecursive($this->testPath, true); parent::tearDown(); }
/** * A function to delete all cache entries in the directory */ public function deleteAll() { $self = $this; $beforeUnlink = function ($path) use($self) { $self->opCacheInvalidate($path); }; Filesystem::unlinkRecursive($this->cachePath, $deleteRootToo = false, $beforeUnlink); if (!empty(self::$onDeleteCallback)) { foreach (self::$onDeleteCallback as $callback) { $callback(); } } }