Completed
Push — master ( 8b38a2...313d97 )
by Mikael
04:15
created

FormElementInputButton   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 17
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 7
dl 0
loc 17
ccs 4
cts 4
cp 1
rs 10
c 0
b 0
f 0
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A getHTML() 0 8 1
1
<?php
2
3
namespace Anax\HTMLForm;
4
5
/**
6
 * Ordinary input form element
7
 */
8
class FormElementInputButton extends FormElement
9
{
10
    /**
11
     * Get HTML code for a element.
12
     *
13
     * @return string HTML code for the element.
14
     *
15
     * @SuppressWarnings(PHPMD.UnusedLocalVariable)
16
     */
17 2
    public function getHTML()
18
    {
19 2
        $details = $this->getHTMLDetails();
20 2
        extract($details);
0 ignored issues
show
Bug introduced by
$details of type Anax\HTMLForm\HTML is incompatible with the type array expected by parameter $var_array of extract(). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

20
        extract(/** @scrutinizer ignore-type */ $details);
Loading history...
21
22
        return <<<EOD
0 ignored issues
show
Bug Best Practice introduced by
The expression return '<span> <input id....$onclick.' /> </span>' returns the type string which is incompatible with the return type mandated by Anax\HTMLForm\FormElement::getHTML() of Anax\HTMLForm\HTML.

In the issue above, the returned value is violating the contract defined by the mentioned interface.

Let's take a look at an example:

interface HasName {
    /** @return string */
    public function getName();
}

class Name {
    public $name;
}

class User implements HasName {
    /** @return string|Name */
    public function getName() {
        return new Name('foo'); // This is a violation of the ``HasName`` interface
                                // which only allows a string value to be returned.
    }
}
Loading history...
23
<span>
24 2
<input id='$id'{$type}{$class}{$name}{$value}{$autofocus}{$readonly}{$novalidate}{$title}{$onclick} />
25
</span>
26
EOD;
27
    }
28
}
29