Passed
Push — master ( 6069c0...69de9a )
by Alexandr
05:39 queued 14s
created

TwigDependencyProvider   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 123
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
eloc 88
dl 0
loc 123
rs 10
c 1
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getTwigLoaderPlugins() 0 14 2
A getTwigPlugins() 0 51 1
A getTwigGatewayPlugins() 0 42 1
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\GuiTable\Communication\Plugin\Twig\GuiTableConfigurationTwigPlugin;
45
use Spryker\Zed\Http\Communication\Plugin\Twig\HttpKernelTwigPlugin;
46
use Spryker\Zed\Http\Communication\Plugin\Twig\RuntimeLoaderTwigPlugin;
47
use Spryker\Zed\MerchantPortalApplication\Communication\Plugin\Twig\MerchantNavigationTypeTwigPlugin;
48
use Spryker\Zed\MerchantUser\Communication\Plugin\Twig\MerchantUserTwigPlugin;
49
use Spryker\Zed\Money\Communication\Plugin\Twig\MoneyTwigPlugin;
50
use Spryker\Zed\Scheduler\Communication\Plugin\Twig\SchedulerTwigPlugin;
51
use Spryker\Zed\Translator\Communication\Plugin\Twig\TranslatorTwigPlugin;
52
use Spryker\Zed\Twig\Communication\Plugin\FilesystemTwigLoaderPlugin;
53
use Spryker\Zed\Twig\Communication\Plugin\FormFilesystemTwigLoaderPlugin;
54
use Spryker\Zed\Twig\TwigDependencyProvider as SprykerTwigDependencyProvider;
55
use Spryker\Zed\User\Communication\Plugin\Twig\UserTwigPlugin;
56
use Spryker\Zed\WebProfiler\Communication\Plugin\Twig\WebProfilerTwigLoaderPlugin;
57
use Spryker\Zed\ZedNavigation\Communication\Plugin\Twig\ZedNavigationTwigPlugin;
58
use Spryker\Zed\ZedUi\Communication\Plugin\Twig\BooleanToStringTwigPlugin;
59
use Spryker\Zed\ZedUi\Communication\Plugin\ZedUiNavigationTwigPlugin;
60
61
class TwigDependencyProvider extends SprykerTwigDependencyProvider
62
{
63
    /**
64
     * @return array<\Spryker\Shared\TwigExtension\Dependency\Plugin\TwigPluginInterface>
65
     */
66
    protected function getTwigPlugins(): array
67
    {
68
        return [
69
            new VarDumperTwigPlugin(),
70
            new FormTwigPlugin(),
71
            new HttpKernelTwigPlugin(),
72
            new RoutingTwigPlugin(),
73
            new SecurityTwigPlugin(),
74
            new TranslatorTwigPlugin(),
75
            new RuntimeLoaderTwigPlugin(),
76
            new FormRuntimeLoaderTwigPlugin(),
77
            new ApplicationTwigPlugin(),
78
            new ChartGuiTwigPlugin(),
79
            new UserTwigPlugin(),
80
            new MoneyTwigPlugin(),
81
            new CurrencyTwigPlugin(),
82
            new ZedNavigationTwigPlugin(),
83
            new DateTimeFormatterTwigPlugin(),
84
            new SchedulerTwigPlugin(),
85
            new BarcodeTwigPlugin(),
86
            new CmsBlockTwigExtensionPlugin(),
87
88
            new AssetsPathTwigPlugin(),
89
            new TabsTwigPlugin(),
90
            new UrlTwigPlugin(),
91
            new UrlDecodeTwigPlugin(),
92
93
            new NavigationLinkTwigPlugin(),
94
            // navigation buttons
95
            new ButtonGroupTwigPlugin(),
96
            new BackActionButtonTwigPlugin(),
97
            new CreateActionButtonTwigPlugin(),
98
            new ViewActionButtonTwigPlugin(),
99
            new EditActionButtonTwigPlugin(),
100
            new RemoveActionButtonTwigPlugin(),
101
            // table row buttons
102
            new EditTableButtonTwigPlugin(),
103
            new BackTableButtonTwigPlugin(),
104
            new CreateTableButtonTwigPlugin(),
105
            new ViewTableButtonTwigPlugin(),
106
            new RemoveTableButtonTwigPlugin(),
107
            // Form buttons
108
            new SubmitButtonTwigPlugin(),
109
            new GuiFilterTwigPlugin(),
110
111
            new ZedUiNavigationTwigPlugin(),
112
            new BooleanToStringTwigPlugin(),
113
            new GuiTableConfigurationTwigPlugin(),
114
            new NumberFormatterTwigPlugin(),
115
            new MerchantUserTwigPlugin(),
116
            new MerchantNavigationTypeTwigPlugin(),
117
        ];
118
    }
119
120
    /**
121
     * @return array<\Spryker\Shared\TwigExtension\Dependency\Plugin\TwigLoaderPluginInterface>
122
     */
123
    protected function getTwigLoaderPlugins(): array
124
    {
125
        $plugins = [
126
            new FilesystemTwigLoaderPlugin(),
127
            new FormFilesystemTwigLoaderPlugin(),
128
            new GuiTwigLoaderPlugin(),
129
            new CmsBlockTemplateTwigLoaderPlugin(),
130
        ];
131
132
        if (class_exists(WebProfilerTwigLoaderPlugin::class)) {
133
            $plugins[] = new WebProfilerTwigLoaderPlugin();
134
        }
135
136
        return $plugins;
137
    }
138
139
    /**
140
     * @return array<\Spryker\Shared\TwigExtension\Dependency\Plugin\TwigPluginInterface>
141
     */
142
    protected function getTwigGatewayPlugins(): array
143
    {
144
        return [
145
            new VarDumperTwigPlugin(),
146
            new FormTwigPlugin(),
147
            new HttpKernelTwigPlugin(),
148
            new RoutingTwigPlugin(),
149
            new SecurityTwigPlugin(),
150
            new RuntimeLoaderTwigPlugin(),
151
            new FormRuntimeLoaderTwigPlugin(),
152
            new ApplicationTwigPlugin(),
153
            new ChartGuiTwigPlugin(),
154
            new UserTwigPlugin(),
155
            new MoneyTwigPlugin(),
156
            new CurrencyTwigPlugin(),
157
            new TranslatorTwigPlugin(),
158
            new DateTimeFormatterTwigPlugin(),
159
            new SchedulerTwigPlugin(),
160
            new BarcodeTwigPlugin(),
161
            new CmsBlockTwigExtensionPlugin(),
162
            new NumberFormatterTwigPlugin(),
163
164
            new AssetsPathTwigPlugin(),
165
            new TabsTwigPlugin(),
166
            new UrlTwigPlugin(),
167
            new UrlDecodeTwigPlugin(),
168
            // navigation buttons
169
            new ButtonGroupTwigPlugin(),
170
            new BackActionButtonTwigPlugin(),
171
            new CreateActionButtonTwigPlugin(),
172
            new ViewActionButtonTwigPlugin(),
173
            new EditActionButtonTwigPlugin(),
174
            new RemoveActionButtonTwigPlugin(),
175
            // table row buttons
176
            new EditTableButtonTwigPlugin(),
177
            new BackTableButtonTwigPlugin(),
178
            new CreateTableButtonTwigPlugin(),
179
            new ViewTableButtonTwigPlugin(),
180
            new RemoveTableButtonTwigPlugin(),
181
            // Form buttons
182
            new SubmitButtonTwigPlugin(),
183
            new GuiFilterTwigPlugin(),
184
        ];
185
    }
186
}
187