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