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 / Updates / 5.9.0-b2.php
matomo / app / core / Updates Last commit date
3.12.0-b1.php 2 years ago 3.12.0-b7.php 2 years ago 4.0.0-b1.php 7 months ago 4.0.0-b3.php 2 years ago 4.0.0-rc3.php 2 years ago 4.0.0-rc4.php 2 months ago 4.0.1-b1.php 2 years ago 4.0.4-b1.php 2 years ago 4.1.2-b1.php 2 years ago 4.1.2-b2.php 2 years ago 4.10.0-b1.php 2 months ago 4.11.0-b1.php 2 months ago 4.11.0-rc2.php 2 months ago 4.12.0-b1.php 2 months ago 4.12.0-b2.php 2 months ago 4.12.0-b3.php 2 months ago 4.12.0-b4.php 2 months ago 4.3.0-b3.php 2 years ago 4.3.0-b4.php 7 months ago 4.3.0-rc2.php 2 years ago 4.4.0-b1.php 2 years ago 4.5.0-b1.php 2 years ago 4.6.0-b1.php 2 years ago 4.6.0-b4.php 3 months ago 4.6.2-rc2.php 3 months ago 4.7.0-b2.php 2 months ago 4.7.1-b1.php 2 months ago 5.0.0-b1.php 1 year ago 5.0.0-rc2.php 2 years ago 5.0.0-rc5.php 2 months ago 5.11.0-b1.php 2 weeks ago 5.2.0-b2.php 1 year ago 5.2.0-b6.php 1 year ago 5.3.0-b1.php 1 year ago 5.3.0-rc1.php 1 year ago 5.4.0-b1.php 7 months ago 5.4.0-b3.php 7 months ago 5.4.0-b4.php 2 months ago 5.5.0-b2.php 2 months ago 5.6.0-b1.php 2 months ago 5.7.0-b1.php 4 months ago 5.7.0-b2.php 3 months ago 5.7.0-b3.php 4 months ago 5.8.0-b1.php 3 months ago 5.8.0-b2.php 3 months ago 5.9.0-b1.php 2 months ago 5.9.0-b2.php 2 months ago
5.9.0-b2.php
75 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\Updates;
10
11 use Piwik\Db\Schema;
12 use Piwik\Updater;
13 use Piwik\Updater\Migration\Factory as MigrationFactory;
14 use Piwik\Updates;
15 class Updates_5_9_0_b2 extends Updates
16 {
17 /**
18 * @var MigrationFactory
19 */
20 private $migration;
21 public function __construct(MigrationFactory $factory)
22 {
23 $this->migration = $factory;
24 }
25 public function getMigrations(Updater $updater) : array
26 {
27 $migrations = [$this->migration->plugin->activate('BotTracking')];
28 if ($this->shouldActivateAIAgents()) {
29 // We only activate this plugin on newer MySQL/MariaDB versions,
30 // to avoid adding a new column to log_visit, where this isn't a no-op
31 $migrations[] = $this->migration->plugin->activate('AIAgents');
32 }
33 return $migrations;
34 }
35 public function doUpdate(Updater $updater) : void
36 {
37 $updater->executeMigrations(__FILE__, $this->getMigrations($updater));
38 }
39 protected function getDatabaseType() : string
40 {
41 return Schema::getInstance()->getDatabaseType();
42 }
43 protected function getDatabaseVersion() : string
44 {
45 return Schema::getInstance()->getVersion();
46 }
47 private function shouldActivateAIAgents() : bool
48 {
49 $databaseType = $this->getDatabaseType();
50 $version = $this->getDatabaseVersion();
51 // fallback if database type isn't configured correctly
52 if ($databaseType === 'MySQL' && strpos(strtolower($version), 'mariadb') !== \false) {
53 $databaseType = 'MariaDB';
54 }
55 $databaseVersion = $this->extractSemanticVersion($version);
56 if (empty($databaseVersion)) {
57 return \false;
58 }
59 if ($databaseType === 'MySQL') {
60 return version_compare($databaseVersion, '8.0.12', '>=');
61 }
62 if ($databaseType === 'MariaDB') {
63 return version_compare($databaseVersion, '10.3.2', '>=');
64 }
65 return \false;
66 }
67 private function extractSemanticVersion(string $databaseVersion) : string
68 {
69 if (preg_match('/\\d+(?:\\.\\d+)+/', $databaseVersion, $matches)) {
70 return $matches[0];
71 }
72 return '';
73 }
74 }
75