Passed
Push — master ( 3502c9...d6dfb3 )
by Maurício
07:46
created

EnginesController::show()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 24
Code Lines 17

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 17
dl 0
loc 24
rs 9.7
c 0
b 0
f 0
cc 3
nc 3
nop 1
1
<?php
2
/* vim: set expandtab sw=4 ts=4 sts=4: */
3
/**
4
 * Holds the PhpMyAdmin\Controllers\Server\EnginesController
5
 *
6
 * @package PhpMyAdmin\Controllers
7
 */
8
declare(strict_types=1);
9
10
namespace PhpMyAdmin\Controllers\Server;
11
12
use PhpMyAdmin\Controllers\Controller;
13
use PhpMyAdmin\StorageEngine;
14
15
/**
16
 * Handles viewing storage engine details
17
 *
18
 * @package PhpMyAdmin\Controllers
19
 */
20
class EnginesController extends Controller
21
{
22
    /**
23
     * Index action
24
     *
25
     * @return string
26
     */
27
    public function index(): string
28
    {
29
        require ROOT_PATH . 'libraries/server_common.inc.php';
30
31
        return $this->template->render('server/engines/index', [
32
            'engines' => StorageEngine::getStorageEngines(),
33
        ]);
34
    }
35
36
    /**
37
     * Displays details about a given Storage Engine
38
     *
39
     * @param array $params Request params
40
     *
41
     * @return string
42
     */
43
    public function show(array $params): string
44
    {
45
        require ROOT_PATH . 'libraries/server_common.inc.php';
46
47
        $page = $params['page'] ?? '';
48
49
        $engine = [];
50
        if (StorageEngine::isValid($params['engine'])) {
51
            $storageEngine = StorageEngine::getEngine($params['engine']);
52
            $engine = [
53
                'engine' => $params['engine'],
54
                'title' => $storageEngine->getTitle(),
55
                'help_page' => $storageEngine->getMysqlHelpPage(),
56
                'comment' => $storageEngine->getComment(),
57
                'info_pages' => $storageEngine->getInfoPages(),
58
                'support' => $storageEngine->getSupportInformationMessage(),
59
                'variables' => $storageEngine->getHtmlVariables(),
60
                'page' => ! empty($page) ? $storageEngine->getPage($page) : '',
61
            ];
62
        }
63
64
        return $this->template->render('server/engines/show', [
65
            'engine' => $engine,
66
            'page' => $page,
67
        ]);
68
    }
69
}
70