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@gmail.com>2015-08-31 16:42:07 +0300
committerThomas Steur <thomas.steur@gmail.com>2015-09-22 15:47:08 +0300
commit8f97ef8dee78aa1fd0bba12f34cd4512ee5959cc (patch)
treeab2f7e57660990d951029b5a6d282265b0ba0cbf /core/UpdateCheck
parent9611d739b69bd188462588d0b8a0463ea8ae6fde (diff)
refs #8549 support for multiple release channels
Diffstat (limited to 'core/UpdateCheck')
-rw-r--r--core/UpdateCheck/ReleaseChannel.php73
1 files changed, 73 insertions, 0 deletions
diff --git a/core/UpdateCheck/ReleaseChannel.php b/core/UpdateCheck/ReleaseChannel.php
new file mode 100644
index 0000000000..5f2040747e
--- /dev/null
+++ b/core/UpdateCheck/ReleaseChannel.php
@@ -0,0 +1,73 @@
+<?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\UpdateCheck;
+
+/**
+ * Base class to define a custom release channel. Plugins can add their own custom release channels by extending this
+ * class in a `plugin/$plugin/ReleaseChannel` folder. Custom release channels can be useful for example to provide
+ * nightly builds, to manage updates for clients via a central server, to package a special Piwik version for clients
+ * with custom plugins etc.
+ *
+ * This is not a public API and it may change without any anouncement.
+ *
+ * @package Piwik\UpdateCheck
+ */
+abstract class ReleaseChannel
+{
+ /**
+ * Get the ID for this release channel. This string will be eg saved in the config to identify the chosen release
+ * channel
+ * @return string
+ */
+ abstract public function getId();
+
+ /**
+ * Get a human readable name for this release channel, will be visible in the UI. Should be already translated.
+ * @return string
+ */
+ abstract public function getName();
+
+ /**
+ * Get the latest available version number for this release channel. Eg '2.15.0-b4' or '2.15.0'. Should be
+ * a semantic version number in format MAJOR.MINOR.PATCH (http://semver.org/). Returning an empty string in case
+ * one cannot connect to the remote server can be acceptable.
+ * @return string
+ */
+ abstract public function getUrlToCheckForLatestAvailableVersion();
+
+ /**
+ * Get the URL to download a specific Piwik archive for the given version number. The returned URL should not
+ * include a URI scheme, meaning it should start with '://...'.
+ *
+ * @param string $version
+ * @return string
+ */
+ abstract public function getDownloadUrlWithoutScheme($version);
+
+ /**
+ * Get the description for this release channel. Will be shown directly next to the name of the release in the
+ * Admin UI. For example 'Recommended' or 'Long Term Support version'.
+ * @return string
+ */
+ public function getDescription()
+ {
+ return '';
+ }
+
+ /**
+ * Get the order for this release channel. The lower the number the more important this release channel is. The
+ * release channel having the lowest order will be shown first and will be used as default release channel in case
+ * no valid release channel is defined.
+ * @return int
+ */
+ public function getOrder()
+ {
+ return 99;
+ }
+} \ No newline at end of file