LoginForm::init()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 43
Code Lines 33

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 35
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 33
c 1
b 0
f 1
dl 0
loc 43
ccs 35
cts 35
cp 1
rs 9.392
cc 1
nc 1
nop 0
crap 1
1
<?php
2
3
namespace Bone\User\Form;
4
5
use Bone\I18n\Form;
6
use Del\Form\Field\CheckBox;
7
use Del\Form\Field\Radio;
8
use Del\Form\Field\Submit;
9
use Del\Form\Field\Text\EmailAddress;
10
use Del\Form\Field\Text\Password;
11
use Del\Form\Filter\Adapter\FilterAdapterZf;
12
use Del\Form\Renderer\HorizontalFormRenderer;
13
use Laminas\Filter\StringToLower;
14
15
class LoginForm extends Form
16
{
17
    const REMEMBER_WEEK = 1;
18
    const REMEMBER_MONTH = 2;
19
    const REMEMBER_YEAR = 3;
20
21 10
    public function init(): void
22
    {
23 10
        $translator= $this->getTranslator();
24
25 10
        $email = new EmailAddress('email');
26 10
        $email->setRequired(true);
27 10
        $email->setAttribute('size', 40);
28 10
        $email->setId('regemail');
29 10
        $email->setLabel($translator->translate('form.email.label', 'user'));
30 10
        $email->setCustomErrorMessage($translator->translate('form.email.error', 'user'));
31
32 10
        $password = new Password('password');
33 10
        $password->setRequired(true);
34 10
        $password->setClass('form-control password');
35 10
        $password->setLabel($translator->translate('form.password.label', 'user'));
36 10
        $password->setId('regpassword');
37 10
        $password->setAttribute('size', 40);
38 10
        $password->setAttribute('placeholder', $translator->translate('form.password.placeholder', 'user'));
39 10
        $password->setCustomErrorMessage($translator->translate('form.password.error', 'user'));
40
41 10
        $checkbox = new Radio('remember');
42 10
        $checkbox->setId('remember');
43 10
        $checkbox->setLabel('Remember me');
44 10
        $checkbox->setOptions([
45 10
            self::REMEMBER_WEEK => '1 week',
46 10
            self::REMEMBER_MONTH => '1 month',
47 10
            self::REMEMBER_YEAR => '1 year',
48 10
        ]);
49 10
        $checkbox->setRenderInline(true);
50
51 10
        $submit = new Submit('submit');
52 10
        $submit->setValue($translator->translate('user.login', 'user'));
53
54 10
        $stringToLower = new StringToLower();
55 10
        $email->addFilter(new FilterAdapterZf($stringToLower));
56
57 10
        $renderer = new HorizontalFormRenderer();
58
59 10
        $this->addField($email);
60 10
        $this->addField($password);
61 10
        $this->addField($checkbox);
62 10
        $this->addField($submit);
63 10
        $this->setFormRenderer($renderer);
64
    }
65
66
}
67