Passed
Push — master ( 2da942...d633d7 )
by Paul
15:03 queued 05:40
created

Migrate_5_3_0   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 40
Duplicated Lines 0 %

Test Coverage

Coverage 60%

Importance

Changes 1
Bugs 1 Features 0
Metric Value
wmc 6
eloc 17
dl 0
loc 40
ccs 12
cts 20
cp 0.6
rs 10
c 1
b 1
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A fixDatabaseVersion() 0 5 2
A run() 0 4 1
A migrateDatabase() 0 15 3
1
<?php
2
3
namespace GeminiLabs\SiteReviews\Modules\Migrations;
4
5
use GeminiLabs\SiteReviews\Application;
6
7
class Migrate_5_3_0
8
{
9
    /**
10
     * @return bool
11
     */
12 7
    public function run()
13
    {
14 7
        $this->migrateDatabase();
15 7
        return true;
16
    }
17
18
    /**
19
     * @return void
20
     */
21 7
    protected function fixDatabaseVersion()
22
    {
23 7
        $databaseVersion = get_option(glsr()->prefix.'db_version');
24 7
        if ('5.2' === $databaseVersion) {
25
            update_option(glsr()->prefix.'db_version', '1.0');
26
        }
27 7
    }
28
29
    /**
30
     * @return void
31
     */
32 7
    protected function migrateDatabase()
33
    {
34 7
        require_once ABSPATH.'/wp-admin/includes/plugin.php';
35 7
        if (!is_plugin_active_for_network(plugin_basename(glsr()->file))) {
36 7
            $this->fixDatabaseVersion();
37 7
            return;
38
        }
39
        $sites = get_sites([
40
            'fields' => 'ids',
41
            'network_id' => get_current_network_id(),
42
        ]);
43
        foreach ($sites as $siteId) {
44
            switch_to_blog($siteId);
45
            $this->fixDatabaseVersion();
46
            restore_current_blog();
47
        }
48
    }
49
}
50