Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Steur <thomas.steur@googlemail.com>2014-08-09 20:57:51 +0400
committerThomas Steur <thomas.steur@googlemail.com>2014-08-12 11:58:51 +0400
commit7b86403b1bac6f5a9fc8f6f434bd572c91dc915a (patch)
tree77734440c56c62c22a8750ae322752f25b8cb5f2 /plugins
parent3e625413e3b6901282222f96a4e48ce953b07c68 (diff)
refs #5936 moved some business logic from controller into model which also brings the advantage to make it better testable. Controller should be always simple/small... removeGoneFiles() is not really testable as it uses the static filesystem and I did not want to make the code ugly to mock it... Looking forward to dependency injection
Diffstat (limited to 'plugins')
-rw-r--r--plugins/CoreUpdater/Controller.php26
-rw-r--r--plugins/CoreUpdater/Model.php34
2 files changed, 38 insertions, 22 deletions
diff --git a/plugins/CoreUpdater/Controller.php b/plugins/CoreUpdater/Controller.php
index aba935637a..f6952594f6 100644
--- a/plugins/CoreUpdater/Controller.php
+++ b/plugins/CoreUpdater/Controller.php
@@ -243,26 +243,6 @@ class Controller extends \Piwik\Plugin\Controller
}
}
- private function getPluginsFromDirectoy($directoryToLook)
- {
- $directories = _glob($directoryToLook . '/plugins/' . '*', GLOB_ONLYDIR);
-
- $directories = array_map(function ($directory) use ($directoryToLook) {
- return str_replace($directoryToLook, '', $directory);
- }, $directories);
-
- return $directories;
- }
-
- private function removeGoneFiles($source, $target)
- {
- Filesystem::unlinkTargetFilesNotPresentInSource($source . '/core', $target . '/core');
-
- foreach ($this->getPluginsFromDirectoy($source) as $pluginDir) {
- Filesystem::unlinkTargetFilesNotPresentInSource($source . $pluginDir, $target . $pluginDir);
- }
- }
-
private function oneClick_Copy()
{
/*
@@ -272,12 +252,14 @@ class Controller extends \Piwik\Plugin\Controller
@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);
- $this->removeGoneFiles($this->pathRootExtractedPiwik, PIWIK_INCLUDE_PATH);
+ $model->removeGoneFiles($this->pathRootExtractedPiwik, PIWIK_INCLUDE_PATH);
/*
* These files are visible in the web root and are generally
@@ -301,7 +283,7 @@ class Controller extends \Piwik\Plugin\Controller
* Copy the non-PHP files (e.g., images, css, javascript)
*/
Filesystem::copyRecursive($this->pathRootExtractedPiwik, PIWIK_DOCUMENT_ROOT, true);
- $this->removeGoneFiles($this->pathRootExtractedPiwik, PIWIK_DOCUMENT_ROOT);
+ $model->removeGoneFiles($this->pathRootExtractedPiwik, PIWIK_DOCUMENT_ROOT);
}
/*
diff --git a/plugins/CoreUpdater/Model.php b/plugins/CoreUpdater/Model.php
new file mode 100644
index 0000000000..e03015e1b3
--- /dev/null
+++ b/plugins/CoreUpdater/Model.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Piwik - free/libre analytics platform
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ *
+ */
+namespace Piwik\Plugins\CoreUpdater;
+
+use Piwik\Filesystem;
+
+class Model
+{
+ public function getPluginsFromDirectoy($directoryToLook)
+ {
+ $directories = _glob($directoryToLook . '/plugins/' . '*', GLOB_ONLYDIR);
+
+ $directories = array_map(function ($directory) use ($directoryToLook) {
+ return str_replace($directoryToLook, '', $directory);
+ }, $directories);
+
+ return $directories;
+ }
+
+ public function removeGoneFiles($source, $target)
+ {
+ Filesystem::unlinkTargetFilesNotPresentInSource($source . '/core', $target . '/core');
+
+ foreach ($this->getPluginsFromDirectoy($source) as $pluginDir) {
+ Filesystem::unlinkTargetFilesNotPresentInSource($source . $pluginDir, $target . $pluginDir);
+ }
+ }
+}