DataSet::getDatabaseSqlInformation()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 11

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 11
ccs 0
cts 5
cp 0
rs 9.9
cc 2
nc 2
nop 2
crap 6
1
<?php
2
3
/**
4
 * Central DataSet object.
5
 */
6
declare(strict_types = 1);
7
8
namespace HDNET\Autoloader;
9
10
use HDNET\Autoloader\Utility\ArrayUtility;
11
use TYPO3\CMS\Core\Utility\GeneralUtility;
12
13
/**
14
 * Central DataSet object.
15
 */
16
class DataSet implements SingletonInterface
17
{
18
    /**
19
     * The different implementations and the order of the execution.
20
     *
21
     * @var array
22
     */
23
    protected $implementations = [
24
        'EnableFields',
25
        'Language',
26
        'Workspaces',
27
    ];
28
29
    /**
30
     * Get all implementations and exclude the given list.
31
     *
32
     * @return array
33
     */
34
    public function getAllAndExcludeList(array $list)
35
    {
36
        $return = $this->implementations;
37
        foreach ($return as $key => $value) {
38
            if (\in_array($value, $list, true)) {
39
                unset($return[$key]);
40
            }
41
        }
42
43
        return $return;
44
    }
45
46
    /**
47
     * Get none implementations and include the given list.
48
     *
49
     * @return array
50
     */
51
    public function getNoneAndIncludeList(array $list)
52
    {
53
        return array_diff($this->implementations, $this->getAllAndExcludeList($list));
54
    }
55
56
    /**
57
     * Get the TCA information of the given data sets.
58
     *
59
     * @param $implementations
60
     * @param $table
61
     *
62
     * @return array
63
     */
64
    public function getTcaInformation(array $implementations, $table)
65
    {
66
        $dataSetObjects = $this->getDataSetObjects($implementations);
67
        $return = [];
68
        foreach ($dataSetObjects as $object) {
69
            $loadedTca = $object->getTca($table);
70
            /** @var DataSetInterface $object */
71
            $return = ArrayUtility::mergeRecursiveDistinct($return, $loadedTca);
72
        }
73
74
        return $return;
75
    }
76
77
    /**
78
     * Get the SQL information of the given data sets.
79
     *
80
     * @param $table
81
     *
82
     * @return array
83
     */
84
    public function getDatabaseSqlInformation(array $implementations, $table)
85
    {
86
        $dataSetObjects = $this->getDataSetObjects($implementations);
87
        $return = [];
88
        foreach ($dataSetObjects as $object) {
89
            /** @var DataSetInterface $object */
90
            $return = array_merge($return, $object->getDatabaseSql($table));
91
        }
92
93
        return $return;
94
    }
95
96
    /**
97
     * Get the SQL Key information of the given data sets.
98
     *
99
     * @param $implementations
100
     * @param $table
101
     *
102
     * @return array
103
     */
104
    public function getDatabaseSqlKeyInformation(array $implementations, $table)
0 ignored issues
show
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
105
    {
106
        $dataSetObjects = $this->getDataSetObjects($implementations);
107
        $return = [];
108
        foreach ($dataSetObjects as $object) {
109
            /** @var DataSetInterface $object */
110
            $return = array_merge($return, $object->getDatabaseSqlKey());
111
        }
112
113
        return $return;
114
    }
115
116
    /**
117
     * Create the data set objects.
118
     *
119
     * @return array
120
     */
121
    protected function getDataSetObjects(array $implementations)
122
    {
123
        foreach ($implementations as $key => $value) {
124
            $implementations[$key] = GeneralUtility::makeInstance('HDNET\\Autoloader\\DataSet\\' . $value);
125
        }
126
127
        return $implementations;
128
    }
129
}
130