Completed
Pull Request — master (#130)
by
unknown
03:02
created

Window::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 18
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 18
ccs 0
cts 16
cp 0
rs 9.4285
cc 1
eloc 14
nc 1
nop 8
crap 2

How to fix   Many Parameters   

Many Parameters

Methods with many parameters are not only hard to understand, but their parameters also often become inconsistent when you need more, or different data.

There are several approaches to avoid long parameter lists:

1
<?php
2
3
namespace eXpansion\Framework\Core\Model\Gui;
4
5
use eXpansion\Framework\Core\Exceptions\Gui\MissingCloseActionException;
6
use eXpansion\Framework\Core\Helpers\Translations;
7
use eXpansion\Framework\Core\Model\Gui\Factory\WindowFrameFactory;
8
use eXpansion\Framework\Core\Model\UserGroups\Group;
9
use FML\Controls\Control;
10
use FML\Types\Container;
11
12
class Window extends Widget implements Container
13
{
14
    /** @var WindowFrameFactoryInterface */
15
    private $windowFrameFactory;
16
17
    public function __construct(
18
        Group $group,
19
        Translations $translationHelper,
20
        WindowFrameFactory $windowFrameFactory,
21
        $name,
22
        $sizeX,
23
        $sizeY,
24
        $posX = null,
25
        $posY = null
26
    ) {
27
        parent::__construct($group, $translationHelper, $name, $sizeX, $sizeY, $posX, $posY);
28
29
        $this->translationHelper = $translationHelper;
30
31
        $windowFrameFactory->setManialinkInterface($this);
32
        $windowFrameFactory->build($this->manialink, $this->windowFrame, $name, $sizeX, $sizeY);
33
        $this->windowFrameFactory = $windowFrameFactory;
34
    }
35
36
    public function setCloseAction($action)
37
    {
38
        $this->windowFrameFactory->setCloseAction($action);
39
    }
40
}
41