LanguageDAO   A
last analyzed

Complexity

Total Complexity 9

Size/Duplication

Total Lines 137
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 59
dl 0
loc 137
rs 10
c 0
b 0
f 0
wmc 9

7 Methods

Rating   Name   Duplication   Size   Complexity  
A getAllLanguages() 0 24 2
A addLanguageForRelease() 0 9 1
A getReleaseLanguages() 0 26 2
A updateLanguage() 0 9 1
A deleteLanguage() 0 9 1
A deleteLanguageFromRelease() 0 9 1
A __construct() 0 2 1
1
<?php
2
namespace AL\Common\DAO;
3
4
require_once __DIR__."/../../lib/Db.php" ;
5
require_once __DIR__."/../Model/Language/Language.php" ;
6
7
/**
8
 * DAO for ports
9
 */
10
class LanguageDAO {
11
    private $mysqli;
12
13
    public function __construct($mysqli) {
14
        $this->mysqli = $mysqli;
15
    }
16
17
    /**
18
     * Get all languages
19
     *
20
     * @return "/../Model/Language/Language[] An array of languages
0 ignored issues
show
Documentation Bug introduced by
The doc comment "/../Model/Language/Language[] at position 0 could not be parsed: Unknown type name '"/../Model/Language/Language' at position 0 in "/../Model/Language/Language[].
Loading history...
21
     */
22
    public function getAllLanguages() {
23
        $stmt = \AL\Db\execute_query(
24
            "LanguageDAO: getAllLanguages",
25
            $this->mysqli,
26
            "SELECT id, name FROM language ORDER BY name",
27
            null, null
28
        );
29
30
        \AL\Db\bind_result(
31
            "LanguageDAO: getAllLanguages",
32
            $stmt,
33
            $id, $name
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $name seems to be never defined.
Loading history...
34
        );
35
36
        $languages = [];
37
        while ($stmt->fetch()) {
38
            $languages[] = new \AL\Common\Model\Language\Language(
39
                $id, $name
40
            );
41
        }
42
43
        $stmt->close();
44
45
        return $languages;
46
    }
47
48
    /* Get all Game Release languages
49
     *
50
     * @return "/../Model/Language/Language[] An array of languages
0 ignored issues
show
Documentation Bug introduced by
The doc comment "/../Model/Language/Language[] at position 0 could not be parsed: Unknown type name '"/../Model/Language/Language' at position 0 in "/../Model/Language/Language[].
Loading history...
51
     */
52
    public function getReleaseLanguages($game_release_id) {
53
        $stmt = \AL\Db\execute_query(
54
            "LanguageDAO: getReleaseLanguages",
55
            $this->mysqli,
56
            "SELECT language.id, language.name FROM language
57
            LEFT JOIN game_release_language ON ( game_release_language.language_id = language.id )
58
			WHERE release_id = ?",
59
            "i", $game_release_id
60
        );
61
62
        \AL\Db\bind_result(
63
            "LanguageDAO: getReleaseLanguages",
64
            $stmt,
65
            $id, $name
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $name seems to be never defined.
Loading history...
66
        );
67
68
        $game_release_language = [];
69
        while ($stmt->fetch()) {
70
            $game_release_language[] = new \AL\Common\Model\Language\Language(
71
                $id, $name
72
            );
73
        }
74
75
        $stmt->close();
76
77
        return $game_release_language;
78
    }
79
80
    /**
81
     * Insert new language for release
82
     *
83
     * @param integer Game_release_id
0 ignored issues
show
Bug introduced by
The type AL\Common\DAO\Game_release_id was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
84
     * @param char language_id
0 ignored issues
show
Bug introduced by
The type AL\Common\DAO\language_id was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
85
     *
86
     */
87
    public function addLanguageForRelease($game_release_id, $language_id) {
88
        $stmt = \AL\Db\execute_query(
89
            "LanguageDAO: addLanguageForRelease",
90
            $this->mysqli,
91
            "INSERT INTO game_release_language (release_id, language_id) VALUES (?,?)",
92
            "is", $game_release_id, $language_id
93
        );
94
95
        $stmt->close();
96
    }
97
98
    /**
99
     * Delete language from release
100
     *
101
     * @param integer Game_release_id
102
     * @param char language_id
103
     *
104
     */
105
    public function deleteLanguageFromRelease($game_release_id, $language_id) {
106
        $stmt = \AL\Db\execute_query(
107
            "LanguageDAO: deleteLanguageFromRelease",
108
            $this->mysqli,
109
            "DELETE FROM game_release_language WHERE release_id = ? and language_id = ?",
110
            "is", $game_release_id, $language_id
111
        );
112
113
        $stmt->close();
114
    }
115
116
    /**
117
     * delete a language
118
     *
119
     * @param int language_id
120
     */
121
    public function deleteLanguage($language_id) {
122
        $stmt = \AL\Db\execute_query(
123
            "LanguageDAO: deleteLanguage",
124
            $this->mysqli,
125
            "DELETE FROM language WHERE id = ?",
126
            "s", $language_id
127
        );
128
129
        $stmt->close();
130
    }
131
132
        /**
133
     * update a language
134
     *
135
     * @param int language_id
136
     * @param varchar language_name
0 ignored issues
show
Bug introduced by
The type AL\Common\DAO\language_name was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
137
     */
138
    public function updateLanguage($language_id, $language_name) {
139
        $stmt = \AL\Db\execute_query(
140
            "LanguageDAO: updateLanguage",
141
            $this->mysqli,
142
            "UPDATE language SET name = ? WHERE id = ?",
143
            "ss", $language_name, $language_id
144
        );
145
146
        $stmt->close();
147
    }
148
}
149