RandomFiller::getTeam()   B
last analyzed

Complexity

Conditions 3
Paths 4

Size

Total Lines 28
Code Lines 20

Duplication

Lines 0
Ratio 0 %

Importance

Changes 9
Bugs 1 Features 4
Metric Value
c 9
b 1
f 4
dl 0
loc 28
rs 8.8571
cc 3
eloc 20
nc 4
nop 1
1
<?php
2
3
4
namespace App\Lib\DsManager\Helpers;
5
6
7
use App\Lib\DsManager\Models\Coach;
8
use App\Lib\DsManager\Models\Player;
9
use App\Lib\DsManager\Models\Team;
10
use App\Lib\Helpers\Config;
11
12
/**
13
 * Class RandomFiller
14
 * @package App\Lib\DsManager\Helpers
15
 */
16
class RandomFiller
17
{
18
    /**
19
     * @var \Faker\Generator
20
     */
21
    protected $faker;
22
23
    /**
24
     * @var string
25
     */
26
    protected $locale;
27
28
29
    /**
30
     * RandomFiller constructor.
31
     * @param string $locale
32
     */
33
    public function __construct($locale = "it_IT")
34
    {
35
        $this->locale = $locale;
36
        $this->faker = \Faker\Factory::create($locale);
37
    }
38
39
    /**
40
     * @return string
41
     */
42
    public function getTeamName()
43
    {
44
        return $this->faker->city;
45
    }
46
47
48
    /**
49
     * @param null $forcedRole
50
     * @param null $locale
51
     * @return Player
52
     */
53
    public function getPlayer($forcedRole = null, $locale = null)
54
    {
55
        $this->setFaker($locale);
56
        $player = new Player;
57
        $player->name = $this->faker->firstNameMale;
58
        $player->surname = $this->faker->lastName;
59
        $player->role = $forcedRole == null ? $this->getRole() : $forcedRole;
60
        $player->nationality = $this->nationalityFromLocale($this->locale);
61
        $player->age = rand(16, 38);
62
        $player->skillAvg = rand(40, 100);
63
64
        return $player;
65
    }
66
67
68
    /**
69
     * @param null $locale
70
     * @return Coach
71
     */
72
    public function getCoach($locale = null)
73
    {
74
        $this->setFaker($locale);
75
        $coach = new Coach;
76
        $coach->name = $this->faker->firstNameMale;
77
        $coach->surname = $this->faker->lastName;
78
        $coach->favouriteModule = $this->getModule();
79
        $coach->nationality = $this->nationalityFromLocale($this->locale);
80
        $coach->age = rand(33, 68);
81
        $coach->skillAvg = rand(40, 100);
82
83
        return $coach;
84
    }
85
86
    /**
87
     * @return mixed
88
     */
89
    public function getRole()
90
    {
91
        $roles = array_keys(Config::get('modules.roles'));
92
        shuffle($roles);
93
        return $roles[0];
94
    }
95
96
    /**
97
     * @return mixed
98
     */
99
    public function getModule()
100
    {
101
        $modules = array_keys(Config::get('modules.modules'));
102
        shuffle($modules);
103
        return $modules[0];
104
    }
105
106
107
    /**
108
     * @param null $locale
109
     * @return Team
110
     */
111
    public function getTeam($locale = null)
112
    {
113
        $rosterConf = Config::get('generic.rosters');
0 ignored issues
show
Bug introduced by
Are you sure the assignment to $rosterConf is correct as \App\Lib\Helpers\Config::get('generic.rosters') (which targets App\Lib\Helpers\Config::get()) seems to always return null.

This check looks for function or method calls that always return null and whose return value is assigned to a variable.

class A
{
    function getObject()
    {
        return null;
    }

}

$a = new A();
$object = $a->getObject();

The method getObject() can return nothing but null, so it makes no sense to assign that value to a variable.

The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.

Loading history...
114
        $numberOfPlayers = rand($rosterConf['min'], $rosterConf['max']);
115
        $this->setFaker($locale);
116
        $team = new Team;
117
        $team->name = $this->getTeamName();
118
        $team->nationality = $this->nationalityFromLocale($this->locale);
119
        $players = [];
120
        for ($i = 0; $i < $numberOfPlayers; $i++) {
121
            $players[] = $this->getPlayer();
122
        }
123
        //Adding some forced role
124
        $players[] = $this->getPlayer("GK", $this->getLocale());
125
        $players[] = $this->getPlayer("CD", $this->getLocale());
126
        $players[] = $this->getPlayer("CD", $this->getLocale());
127
        $players[] = $this->getPlayer("CM", $this->getLocale());
128
        $players[] = $this->getPlayer("CM", $this->getLocale());
129
        $players[] = $this->getPlayer("CS", $this->getLocale());
130
        //
131
132
        $team->roster = $players;
133
        //setting random Nationality Coach (20%)
134
        $coachNationality = Randomizer::boolOnPercentage(20) ? $this->getLocale() : null;
135
        $team->coach = $this->getCoach($coachNationality);
136
137
        return $team;
138
    }
139
140
141
    /**
142
     * @return mixed
143
     */
144
    public function getLocale()
145
    {
146
        $locales = (Config::get('generic.localesSmall'));
0 ignored issues
show
Bug introduced by
Are you sure the assignment to $locales is correct as \App\Lib\Helpers\Config:...'generic.localesSmall') (which targets App\Lib\Helpers\Config::get()) seems to always return null.

This check looks for function or method calls that always return null and whose return value is assigned to a variable.

class A
{
    function getObject()
    {
        return null;
    }

}

$a = new A();
$object = $a->getObject();

The method getObject() can return nothing but null, so it makes no sense to assign that value to a variable.

The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.

Loading history...
147
        shuffle($locales);
148
        return $locales[0];
149
    }
150
151
    /**
152
     * @param $locale
153
     * @return mixed
154
     */
155
    private function nationalityFromLocale($locale)
156
    {
157
        return preg_replace("/.._/", '', $locale);
158
    }
159
160
    /**
161
     * @param $locale
162
     */
163
    private function setFaker($locale)
164
    {
165
        if ($locale !== null) {
166
            $this->faker = \Faker\Factory::create($locale);
167
            $this->locale = $locale;
168
        }
169
    }
170
171
}