Passed
Push — master ( c2e872...185b2c )
by Alexandr
08:41 queued 14s
created

TwigDependencyProvider::getTwigGatewayPlugins()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 42
Code Lines 36

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 36
dl 0
loc 42
rs 9.344
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
/**
4
 * This file is part of the Spryker Commerce OS.
5
 * For full license information, please view the LICENSE file that was distributed with this source code.
6
 */
7
8
declare(strict_types = 1);
9
10
namespace Pyz\Zed\Twig;
11
12
use Spryker\Service\UtilDateTime\Plugin\Twig\DateTimeFormatterTwigPlugin;
13
use Spryker\Shared\Twig\Plugin\FormTwigPlugin;
14
use Spryker\Shared\Twig\Plugin\RoutingTwigPlugin;
15
use Spryker\Shared\Twig\Plugin\SecurityTwigPlugin;
16
use Spryker\Shared\Twig\Plugin\VarDumperTwigPlugin;
17
use Spryker\Zed\Application\Communication\Plugin\Twig\ApplicationTwigPlugin;
18
use Spryker\Zed\Barcode\Plugin\Twig\BarcodeTwigPlugin;
19
use Spryker\Zed\ChartGui\Communication\Plugin\Twig\Chart\ChartGuiTwigPlugin;
20
use Spryker\Zed\CmsBlock\Communication\Plugin\Twig\CmsBlockTemplateTwigLoaderPlugin;
21
use Spryker\Zed\CmsBlock\Communication\Plugin\Twig\CmsBlockTwigExtensionPlugin;
22
use Spryker\Zed\Currency\Communication\Plugin\Twig\CurrencyTwigPlugin;
23
use Spryker\Zed\Gui\Communication\Plugin\Twig\AssetsPathTwigPlugin;
24
use Spryker\Zed\Gui\Communication\Plugin\Twig\Buttons\Action\BackActionButtonTwigPlugin;
25
use Spryker\Zed\Gui\Communication\Plugin\Twig\Buttons\Action\CreateActionButtonTwigPlugin;
26
use Spryker\Zed\Gui\Communication\Plugin\Twig\Buttons\Action\EditActionButtonTwigPlugin;
27
use Spryker\Zed\Gui\Communication\Plugin\Twig\Buttons\Action\RemoveActionButtonTwigPlugin;
28
use Spryker\Zed\Gui\Communication\Plugin\Twig\Buttons\Action\ViewActionButtonTwigPlugin;
29
use Spryker\Zed\Gui\Communication\Plugin\Twig\Buttons\ButtonGroupTwigPlugin;
30
use Spryker\Zed\Gui\Communication\Plugin\Twig\Buttons\Form\SubmitButtonTwigPlugin;
31
use Spryker\Zed\Gui\Communication\Plugin\Twig\Buttons\Table\BackTableButtonTwigPlugin;
32
use Spryker\Zed\Gui\Communication\Plugin\Twig\Buttons\Table\CreateTableButtonTwigPlugin;
33
use Spryker\Zed\Gui\Communication\Plugin\Twig\Buttons\Table\EditTableButtonTwigPlugin;
34
use Spryker\Zed\Gui\Communication\Plugin\Twig\Buttons\Table\RemoveTableButtonTwigPlugin;
35
use Spryker\Zed\Gui\Communication\Plugin\Twig\Buttons\Table\ViewTableButtonTwigPlugin;
36
use Spryker\Zed\Gui\Communication\Plugin\Twig\FormRuntimeLoaderTwigPlugin;
37
use Spryker\Zed\Gui\Communication\Plugin\Twig\GuiFilterTwigPlugin;
38
use Spryker\Zed\Gui\Communication\Plugin\Twig\GuiTwigLoaderPlugin;
39
use Spryker\Zed\Gui\Communication\Plugin\Twig\NavigationLinkTwigPlugin;
40
use Spryker\Zed\Gui\Communication\Plugin\Twig\NumberFormatterTwigPlugin;
41
use Spryker\Zed\Gui\Communication\Plugin\Twig\TabsTwigPlugin;
42
use Spryker\Zed\Gui\Communication\Plugin\Twig\UrlDecodeTwigPlugin;
43
use Spryker\Zed\Gui\Communication\Plugin\Twig\UrlTwigPlugin;
44
use Spryker\Zed\Http\Communication\Plugin\Twig\HttpKernelTwigPlugin;
45
use Spryker\Zed\Http\Communication\Plugin\Twig\RuntimeLoaderTwigPlugin;
46
use Spryker\Zed\Money\Communication\Plugin\Twig\MoneyTwigPlugin;
47
use Spryker\Zed\Scheduler\Communication\Plugin\Twig\SchedulerTwigPlugin;
48
use Spryker\Zed\Translator\Communication\Plugin\Twig\TranslatorTwigPlugin;
49
use Spryker\Zed\Twig\Communication\Plugin\FilesystemTwigLoaderPlugin;
50
use Spryker\Zed\Twig\Communication\Plugin\FormFilesystemTwigLoaderPlugin;
51
use Spryker\Zed\Twig\TwigDependencyProvider as SprykerTwigDependencyProvider;
52
use Spryker\Zed\User\Communication\Plugin\Twig\UserTwigPlugin;
53
use Spryker\Zed\WebProfiler\Communication\Plugin\Twig\WebProfilerTwigLoaderPlugin;
54
use Spryker\Zed\ZedNavigation\Communication\Plugin\Twig\ZedNavigationTwigPlugin;
55
56
class TwigDependencyProvider extends SprykerTwigDependencyProvider
57
{
58
    /**
59
     * @return array<\Spryker\Shared\TwigExtension\Dependency\Plugin\TwigPluginInterface>
60
     */
61
    protected function getTwigPlugins(): array
62
    {
63
        return [
64
            new VarDumperTwigPlugin(),
65
            new FormTwigPlugin(),
66
            new HttpKernelTwigPlugin(),
67
            new RoutingTwigPlugin(),
68
            new SecurityTwigPlugin(),
69
            new TranslatorTwigPlugin(),
70
            new RuntimeLoaderTwigPlugin(),
71
            new FormRuntimeLoaderTwigPlugin(),
72
            new ApplicationTwigPlugin(),
73
            new ChartGuiTwigPlugin(),
74
            new UserTwigPlugin(),
75
            new MoneyTwigPlugin(),
76
            new CurrencyTwigPlugin(),
77
            new ZedNavigationTwigPlugin(),
78
            new DateTimeFormatterTwigPlugin(),
79
            new SchedulerTwigPlugin(),
80
            new BarcodeTwigPlugin(),
81
            new CmsBlockTwigExtensionPlugin(),
82
            new NumberFormatterTwigPlugin(),
83
84
            new AssetsPathTwigPlugin(),
85
            new TabsTwigPlugin(),
86
            new UrlTwigPlugin(),
87
            new UrlDecodeTwigPlugin(),
88
89
            new NavigationLinkTwigPlugin(),
90
            // navigation buttons
91
            new ButtonGroupTwigPlugin(),
92
            new BackActionButtonTwigPlugin(),
93
            new CreateActionButtonTwigPlugin(),
94
            new ViewActionButtonTwigPlugin(),
95
            new EditActionButtonTwigPlugin(),
96
            new RemoveActionButtonTwigPlugin(),
97
            // table row buttons
98
            new EditTableButtonTwigPlugin(),
99
            new BackTableButtonTwigPlugin(),
100
            new CreateTableButtonTwigPlugin(),
101
            new ViewTableButtonTwigPlugin(),
102
            new RemoveTableButtonTwigPlugin(),
103
            // Form buttons
104
            new SubmitButtonTwigPlugin(),
105
            new GuiFilterTwigPlugin(),
106
        ];
107
    }
108
109
    /**
110
     * @return array<\Spryker\Shared\TwigExtension\Dependency\Plugin\TwigLoaderPluginInterface>
111
     */
112
    protected function getTwigLoaderPlugins(): array
113
    {
114
        $plugins = [
115
            new FilesystemTwigLoaderPlugin(),
116
            new FormFilesystemTwigLoaderPlugin(),
117
            new GuiTwigLoaderPlugin(),
118
            new CmsBlockTemplateTwigLoaderPlugin(),
119
        ];
120
121
        if (class_exists(WebProfilerTwigLoaderPlugin::class)) {
122
            $plugins[] = new WebProfilerTwigLoaderPlugin();
123
        }
124
125
        return $plugins;
126
    }
127
128
    /**
129
     * @return array<\Spryker\Shared\TwigExtension\Dependency\Plugin\TwigPluginInterface>
130
     */
131
    protected function getTwigGatewayPlugins(): array
132
    {
133
        return [
134
            new VarDumperTwigPlugin(),
135
            new FormTwigPlugin(),
136
            new HttpKernelTwigPlugin(),
137
            new RoutingTwigPlugin(),
138
            new SecurityTwigPlugin(),
139
            new RuntimeLoaderTwigPlugin(),
140
            new FormRuntimeLoaderTwigPlugin(),
141
            new ApplicationTwigPlugin(),
142
            new ChartGuiTwigPlugin(),
143
            new UserTwigPlugin(),
144
            new MoneyTwigPlugin(),
145
            new CurrencyTwigPlugin(),
146
            new TranslatorTwigPlugin(),
147
            new DateTimeFormatterTwigPlugin(),
148
            new SchedulerTwigPlugin(),
149
            new BarcodeTwigPlugin(),
150
            new CmsBlockTwigExtensionPlugin(),
151
            new NumberFormatterTwigPlugin(),
152
153
            new AssetsPathTwigPlugin(),
154
            new TabsTwigPlugin(),
155
            new UrlTwigPlugin(),
156
            new UrlDecodeTwigPlugin(),
157
            // navigation buttons
158
            new ButtonGroupTwigPlugin(),
159
            new BackActionButtonTwigPlugin(),
160
            new CreateActionButtonTwigPlugin(),
161
            new ViewActionButtonTwigPlugin(),
162
            new EditActionButtonTwigPlugin(),
163
            new RemoveActionButtonTwigPlugin(),
164
            // table row buttons
165
            new EditTableButtonTwigPlugin(),
166
            new BackTableButtonTwigPlugin(),
167
            new CreateTableButtonTwigPlugin(),
168
            new ViewTableButtonTwigPlugin(),
169
            new RemoveTableButtonTwigPlugin(),
170
            // Form buttons
171
            new SubmitButtonTwigPlugin(),
172
            new GuiFilterTwigPlugin(),
173
        ];
174
    }
175
}
176