PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / trunk
Matomo Analytics – Powerful, Privacy-First Insights for WordPress vtrunk
5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / core / UpdateCheck / ReleaseChannel.php
matomo / app / core / UpdateCheck Last commit date
ReleaseChannel.php 3 months ago
ReleaseChannel.php
82 lines
1 <?php
2
3 /**
4 * Matomo - free/libre analytics platform
5 *
6 * @link https://matomo.org
7 * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
8 */
9 namespace Piwik\UpdateCheck;
10
11 /**
12 * Base class to define a custom release channel. Plugins can add their own custom release channels by extending this
13 * class in a `plugin/$plugin/ReleaseChannel` folder. Custom release channels can be useful for example to provide
14 * nightly builds, to manage updates for clients via a central server, to package a special Matomo version for clients
15 * with custom plugins etc.
16 *
17 * This is not a public API, and it may change without any announcement.
18 */
19 abstract class ReleaseChannel
20 {
21 /**
22 * Get the ID for this release channel. E.g., this string will be saved in the config to identify the chosen release
23 * channel
24 * @return string
25 */
26 public abstract function getId();
27 /**
28 * Get a human-readable name for this release channel, will be visible in the UI. Should be already translated.
29 * @return string
30 */
31 public abstract function getName();
32 /**
33 * Whether only stable versions are wanted or also beta versions.
34 * @return bool
35 */
36 public function doesPreferStable()
37 {
38 return \true;
39 }
40 /**
41 * Get the latest available version number for this release channel. Eg '2.15.0-b4' or '2.15.0'. Should be
42 * a semantic version number in format MAJOR.MINOR.PATCH (https://semver.org/). Returning an empty string in case
43 * one cannot connect to the remote server can be acceptable.
44 * @return string
45 */
46 public abstract function getUrlToCheckForLatestAvailableVersion();
47 /**
48 * Get the URL to download a specific Matomo archive for the given version number. The returned URL should not
49 * include a URI scheme, meaning it should start with '://...'.
50 *
51 * @param string $version
52 * @return string
53 */
54 public abstract function getDownloadUrlWithoutScheme($version);
55 /**
56 * Get the description for this release channel. Will be shown directly next to the name of the release in the
57 * Admin UI. For example 'Recommended' or 'Long Term Support version'.
58 * @return string
59 */
60 public function getDescription()
61 {
62 return '';
63 }
64 /**
65 * Get the order for this release channel. The lower the number the more important this release channel is. The
66 * release channel having the lowest order will be shown first and will be used as default release channel in case
67 * no valid release channel is defined.
68 * @return int
69 */
70 public function getOrder()
71 {
72 return 99;
73 }
74 /**
75 * If the channel should be possible to be enabled in the system settings.
76 */
77 public function isSelectableInSettings() : bool
78 {
79 return \true;
80 }
81 }
82