TagFactory   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 92
Duplicated Lines 0 %

Test Coverage

Coverage 21.82%

Importance

Changes 3
Bugs 0 Features 0
Metric Value
wmc 4
eloc 49
dl 0
loc 92
ccs 12
cts 55
cp 0.2182
rs 10
c 3
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
A getAdapters() 0 41 1
A newInstance() 0 10 2
1
<?php
2
3
/**
4
 * This file is part of the Phalcon Framework.
5
 *
6
 * For the full copyright and license information, please view the LICENSE.md
7
 * file that was distributed with this source code.
8
 */
9
10
declare(strict_types=1);
11
12
namespace Phalcon\Html;
13
14
use Phalcon\Factory\AbstractFactory;
15
use Phalcon\Factory\Exception as ExceptionAlias;
16
17
/**
18
 * ServiceLocator implementation for Tag helpers
19
 *
20
 * @property Escaper $escaper
21
 * @property array   $services
22
 */
23
class TagFactory extends AbstractFactory
24
{
25
    /**
26
     * @var Escaper
27
     */
28
    private $escaper;
29
30
    /**
31
     * @var array
32
     */
33
    protected $services = [];
34
35
    /**
36
     * TagFactory constructor.
37
     */
38
    /**
39
     * TagFactory constructor.
40
     *
41
     * @param Escaper $escaper
42
     * @param array   $services
43
     */
44 21
    public function __construct(Escaper $escaper, array $services = [])
45
    {
46 21
        $this->escaper = $escaper;
47
48 21
        $this->init($services);
49 21
    }
50
51
    /**
52
     * Create a new instance of the object
53
     *
54
     * @param string $name
55
     *
56
     * @return mixed
57
     * @throws ExceptionAlias
58
     */
59 21
    public function newInstance(string $name)
60
    {
61 21
        $this->checkService($name);
62
63 20
        if (!isset($this->services[$name])) {
64 20
            $definition            = $this->mapper[$name];
65 20
            $this->services[$name] = new $definition($this->escaper);
66
        }
67
68 20
        return $this->services[$name];
69
    }
70
71
    /**
72
     * @return array|void
73
     */
74 21
    protected function getAdapters(): array
75
    {
76
        return [
77 21
            "a"                  => "Phalcon\\Html\\Helper\\Anchor",
78
            "base"               => "Phalcon\\Html\\Helper\\Base",
79
            "body"               => "Phalcon\\Html\\Helper\\Body",
80
            "button"             => "Phalcon\\Html\\Helper\\Button",
81
            "close"              => "Phalcon\\Html\\Helper\\Close",
82
            "element"            => "Phalcon\\Html\\Helper\\Element",
83
            "form"               => "Phalcon\\Html\\Helper\\Form",
84
            "img"                => "Phalcon\\Html\\Helper\\Img",
85
            "inputColor"         => "Phalcon\\Html\\Helper\\Input\\Color",
86
            "inputDate"          => "Phalcon\\Html\\Helper\\Input\\Date",
87
            "inputDateTime"      => "Phalcon\\Html\\Helper\\Input\\DateTime",
88
            "inputDateTimeLocal" => "Phalcon\\Html\\Helper\\Input\\DateTimeLocal",
89
            "inputEmail"         => "Phalcon\\Html\\Helper\\Input\\Email",
90
            "inputFile"          => "Phalcon\\Html\\Helper\\Input\\File",
91
            "inputHidden"        => "Phalcon\\Html\\Helper\\Input\\Hidden",
92
            "inputImage"         => "Phalcon\\Html\\Helper\\Input\\Image",
93
            "inputInput"         => "Phalcon\\Html\\Helper\\Input\\Input",
94
            "inputMonth"         => "Phalcon\\Html\\Helper\\Input\\Month",
95
            "inputNumeric"       => "Phalcon\\Html\\Helper\\Input\\Numeric",
96
            "inputPassword"      => "Phalcon\\Html\\Helper\\Input\\Password",
97
            "inputRange"         => "Phalcon\\Html\\Helper\\Input\\Range",
98
            "inputSelect"        => "Phalcon\\Html\\Helper\\Input\\Select",
99
            "inputSearch"        => "Phalcon\\Html\\Helper\\Input\\Search",
100
            "inputSubmit"        => "Phalcon\\Html\\Helper\\Input\\Submit",
101
            "inputTel"           => "Phalcon\\Html\\Helper\\Input\\Tel",
102
            "inputText"          => "Phalcon\\Html\\Helper\\Input\\Text",
103
            "inputTextarea"      => "Phalcon\\Html\\Helper\\Input\\Textarea",
104
            "inputTime"          => "Phalcon\\Html\\Helper\\Input\\Time",
105
            "inputUrl"           => "Phalcon\\Html\\Helper\\Input\\Url",
106
            "inputWeek"          => "Phalcon\\Html\\Helper\\Input\\Week",
107
            "label"              => "Phalcon\\Html\\Helper\\Label",
108
            "link"               => "Phalcon\\Html\\Helper\\Link",
109
            "meta"               => "Phalcon\\Html\\Helper\\Meta",
110
            "ol"                 => "Phalcon\\Html\\Helper\\Ol",
111
            "script"             => "Phalcon\\Html\\Helper\\Script",
112
            "style"              => "Phalcon\\Html\\Helper\\Style",
113
            "title"              => "Phalcon\\Html\\Helper\\Title",
114
            "ul"                 => "Phalcon\\Html\\Helper\\Ul",
115
        ];
116
    }
117
}
118