Passed
Pull Request — master (#5)
by Michael
02:50
created

admin/migrate.php (1 issue)

Severity
1
<?php
2
//
3
//  ------------------------------------------------------------------------ //
4
//                XOOPS - PHP Content Management System                      //
5
//                  Copyright (c) 2000-2019 XOOPS.org                        //
6
//                       <https://xoops.org/>                             //
7
//  ------------------------------------------------------------------------ //
8
//  This program is free software; you can redistribute it and/or modify     //
9
//  it under the terms of the GNU General Public License as published by     //
10
//  the Free Software Foundation; either version 2 of the License, or        //
11
//  (at your option) any later version.                                      //
12
//                                                                           //
13
//  You may not change or alter any portion of this comment or credits       //
14
//  of supporting developers from this source code or any supporting         //
15
//  source code which is considered copyrighted (c) material of the          //
16
//  original comment or credit authors.                                      //
17
//                                                                           //
18
//  This program is distributed in the hope that it will be useful,          //
19
//  but WITHOUT ANY WARRANTY; without even the implied warranty of           //
20
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            //
21
//  GNU General Public License for more details.                             //
22
//                                                                           //
23
//  You should have received a copy of the GNU General Public License        //
24
//  along with this program; if not, write to the Free Software              //
25
//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA //
26
//  ------------------------------------------------------------------------ //
27
// Author: Kazumi Ono (AKA onokazu)                                          //
28
// URL: http://www.myweb.ne.jp/, https://xoops.org/, http://jp.xoops.org/ //
29
// Project: XOOPS Project                                                    //
30
// ------------------------------------------------------------------------- //
31
32
use Xmf\Request;
33
use XoopsModules\Tdmdownloads;
34
35
require_once __DIR__ . '/admin_header.php';
36
xoops_cp_header();
37
38
$adminObject->displayNavigation(basename(__FILE__));
39
40
echo <<<EOF
41
<form method="post" class="form-inline">
42
<div class="form-group">
43
<input name="show" class="btn btn-default" type="submit" value="Show SQL">
44
</div>
45
<div class="form-group">
46
<input name="migrate" class="btn btn-default" type="submit" value="Do Migration">
47
</div>
48
<div class="form-group">
49
<input name="schema" class="btn btn-default" type="submit" value="Write Schema">
50
</div>
51
</form>
52
EOF;
53
54
//XoopsLoad::load('migrate', 'newbb');
55
56
/** @var Tdmdownloads\Common\Configurator $configurator */
57
$configurator = new Tdmdownloads\Common\Configurator();
58
59
/** @var \XoopsModules\Tdmdownloads\Common\Migrate $migrator */
60
$migrator = new \XoopsModules\Tdmdownloads\Common\Migrate($configurator);
0 ignored issues
show
The call to XoopsModules\Tdmdownload...\Migrate::__construct() has too many arguments starting with $configurator. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

60
$migrator = /** @scrutinizer ignore-call */ new \XoopsModules\Tdmdownloads\Common\Migrate($configurator);

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress. Please note the @ignore annotation hint above.

Loading history...
61
62
$op        = Request::getCmd('op', 'default');
63
$opShow    = Request::getCmd('show', null, 'POST');
64
$opMigrate = Request::getCmd('migrate', null, 'POST');
65
$opSchema  = Request::getCmd('schema', null, 'POST');
66
$op        = !empty($opShow) ? 'show' : $op;
67
$op        = !empty($opMigrate) ? 'migrate' : $op;
68
$op        = !empty($opSchema) ? 'schema' : $op;
69
70
$message = '';
71
72
switch ($op) {
73
    case 'show':
74
        $queue = $migrator->getSynchronizeDDL();
75
        if (!empty($queue)) {
76
            echo "<pre>\n";
77
            foreach ($queue as $line) {
78
                echo $line . ";\n";
79
            }
80
            echo "</pre>\n";
81
        }
82
        break;
83
    case 'migrate':
84
        $migrator->synchronizeSchema();
85
        $message = 'Database migrated to current schema.';
86
        break;
87
    case 'schema':
88
        xoops_confirm(['op' => 'confirmwrite'], 'migrate.php', 'Warning! This is intended for developers only. Confirm write schema file from current database.', 'Confirm');
89
        break;
90
    case 'confirmwrite':
91
        if ($GLOBALS['xoopsSecurity']->check()) {
92
            $migrator->saveCurrentSchema();
93
            $message = 'Current schema file written';
94
        }
95
        break;
96
}
97
98
echo "<div>$message</div>";
99
100
require_once __DIR__ . '/admin_footer.php';
101