getGlobalWidgets()   B
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 100
Code Lines 98

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
eloc 98
c 1
b 1
f 0
dl 0
loc 100
rs 8.0436
cc 1
nc 1
nop 0

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

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\Yves\ShopApplication;
11
12
use Pyz\Yves\ProductRelationWidget\Widget\UpSellingProductsWidget;
13
use Pyz\Yves\ProductReviewWidget\Widget\ProductDetailPageReviewWidget;
14
use Pyz\Yves\ProductSetWidget\Widget\ProductSetIdsWidget;
15
use Spryker\Yves\CustomerDataChangeRequest\Widget\CustomerEmailChangeRequestWidget;
16
use Spryker\Yves\ErrorHandler\Plugin\Application\ErrorHandlerApplicationPlugin;
17
use Spryker\Yves\EventDispatcher\Plugin\Application\EventDispatcherApplicationPlugin;
18
use Spryker\Yves\Form\Plugin\Application\FormApplicationPlugin;
19
use Spryker\Yves\Http\Plugin\Application\YvesHttpApplicationPlugin;
20
use Spryker\Yves\Locale\Plugin\Application\LocaleApplicationPlugin;
21
use Spryker\Yves\Messenger\Plugin\Application\FlashMessengerApplicationPlugin;
22
use Spryker\Yves\MultiFactorAuth\Widget\MultiFactorAuthHandlerWidget;
23
use Spryker\Yves\MultiFactorAuth\Widget\SetMultiFactorAuthMenuItemWidget;
24
use Spryker\Yves\Router\Plugin\Application\RouterApplicationPlugin;
25
use Spryker\Yves\Security\Plugin\Application\YvesSecurityApplicationPlugin;
26
use Spryker\Yves\Session\Plugin\Application\SessionApplicationPlugin;
27
use Spryker\Yves\Sitemap\Widget\SitemapWidget;
28
use Spryker\Yves\Translator\Plugin\Application\TranslatorApplicationPlugin;
29
use Spryker\Yves\Twig\Plugin\Application\TwigApplicationPlugin;
30
use Spryker\Yves\Validator\Plugin\Application\ValidatorApplicationPlugin;
31
use SprykerShop\Yves\AgentWidget\Widget\AgentControlBarWidget;
32
use SprykerShop\Yves\AssetWidget\Widget\AssetWidget;
33
use SprykerShop\Yves\AvailabilityNotificationWidget\Widget\AvailabilityNotificationSubscriptionWidget;
34
use SprykerShop\Yves\BarcodeWidget\Widget\BarcodeWidget;
35
use SprykerShop\Yves\CartCodeWidget\Widget\CartCodeFormWidget;
36
use SprykerShop\Yves\CartNoteWidget\Plugin\ShopApplication\CartItemNoteFormWidgetCacheKeyGeneratorStrategyPlugin;
37
use SprykerShop\Yves\CartNoteWidget\Widget\CartItemNoteFormWidget;
38
use SprykerShop\Yves\CartNoteWidget\Widget\CartNoteFormWidget;
39
use SprykerShop\Yves\CartPage\Widget\AddItemsFormWidget;
40
use SprykerShop\Yves\CartPage\Widget\AddToCartFormWidget;
41
use SprykerShop\Yves\CartPage\Widget\CartAddProductAsSeparateItemWidget;
42
use SprykerShop\Yves\CartPage\Widget\CartChangeQuantityFormWidget;
43
use SprykerShop\Yves\CartPage\Widget\CartSummaryHideTaxAmountWidget;
44
use SprykerShop\Yves\CartPage\Widget\ProductAbstractAddToCartButtonWidget;
45
use SprykerShop\Yves\CartPage\Widget\RemoveFromCartFormWidget;
46
use SprykerShop\Yves\CartReorderPage\Widget\CartReorderItemCheckboxWidget;
47
use SprykerShop\Yves\CartReorderPage\Widget\CartReorderItemsWidget;
48
use SprykerShop\Yves\CartReorderPage\Widget\CartReorderWidget;
49
use SprykerShop\Yves\CategoryImageStorageWidget\Widget\CategoryImageStorageWidget;
50
use SprykerShop\Yves\CheckoutWidget\Widget\CheckoutBreadcrumbWidget;
51
use SprykerShop\Yves\CheckoutWidget\Widget\ProceedToCheckoutButtonWidget;
52
use SprykerShop\Yves\ConfigurableBundleNoteWidget\Widget\ConfiguredBundleNoteWidget;
53
use SprykerShop\Yves\ConfigurableBundleWidget\Widget\QuoteConfiguredBundleWidget;
54
use SprykerShop\Yves\CurrencyWidget\Widget\CurrencyWidget;
55
use SprykerShop\Yves\CustomerPage\Plugin\Application\CustomerConfirmationUserCheckerApplicationPlugin;
56
use SprykerShop\Yves\CustomerPage\Widget\CustomerNavigationWidget;
57
use SprykerShop\Yves\CustomerValidationPage\Plugin\ShopApplication\LogoutInvalidatedCustomerFilterControllerEventHandlerPlugin;
58
use SprykerShop\Yves\DiscountPromotionWidget\Plugin\ShopApplication\CartDiscountPromotionProductListWidgetCacheKeyGeneratorStrategyPlugin;
59
use SprykerShop\Yves\DiscountPromotionWidget\Widget\CartDiscountPromotionProductListWidget;
60
use SprykerShop\Yves\LanguageSwitcherWidget\Widget\LanguageSwitcherWidget;
61
use SprykerShop\Yves\MoneyWidget\Widget\CurrencyIsoCodeWidget;
62
use SprykerShop\Yves\NewsletterWidget\Widget\NewsletterSubscriptionSummaryWidget;
63
use SprykerShop\Yves\NewsletterWidget\Widget\NewsletterSubscriptionWidget;
64
use SprykerShop\Yves\OrderCancelWidget\Widget\OrderCancelButtonWidget;
65
use SprykerShop\Yves\OrderCustomReferenceWidget\Widget\OrderCustomReferenceWidget;
66
use SprykerShop\Yves\PaymentAppWidget\Widget\ExpressCheckoutPaymentWidget;
67
use SprykerShop\Yves\PriceProductVolumeWidget\Widget\CurrentProductPriceVolumeWidget;
68
use SprykerShop\Yves\PriceProductWidget\Widget\PriceProductWidget;
69
use SprykerShop\Yves\PriceWidget\Widget\PriceModeSwitcherWidget;
70
use SprykerShop\Yves\ProductAlternativeWidget\Widget\ProductAlternativeListWidget;
71
use SprykerShop\Yves\ProductAlternativeWidget\Widget\ShoppingListProductAlternativeWidget;
72
use SprykerShop\Yves\ProductAlternativeWidget\Widget\WishlistProductAlternativeWidget;
73
use SprykerShop\Yves\ProductBarcodeWidget\Widget\ProductBarcodeWidget;
74
use SprykerShop\Yves\ProductBundleWidget\Widget\ProductBundleCartItemsListWidget;
75
use SprykerShop\Yves\ProductBundleWidget\Widget\ProductBundleItemCounterWidget;
76
use SprykerShop\Yves\ProductBundleWidget\Widget\ProductBundleItemsMultiCartItemsListWidget;
77
use SprykerShop\Yves\ProductBundleWidget\Widget\ProductBundleMultiCartItemsListWidget;
78
use SprykerShop\Yves\ProductBundleWidget\Widget\ProductBundleProductDetailPageItemsListWidget;
79
use SprykerShop\Yves\ProductCategoryWidget\Widget\ProductBreadcrumbsWithCategoriesWidget;
80
use SprykerShop\Yves\ProductCategoryWidget\Widget\ProductSchemaOrgCategoryWidget;
81
use SprykerShop\Yves\ProductComparisonWidget\Widget\ComparisonProductTogglerComparisonListWidget;
82
use SprykerShop\Yves\ProductComparisonWidget\Widget\LinkToProductComparisonListWidget;
83
use SprykerShop\Yves\ProductConfigurationCartWidget\Widget\ProductConfigurationCartItemDisplayWidget;
84
use SprykerShop\Yves\ProductConfigurationCartWidget\Widget\ProductConfigurationCartPageButtonWidget;
85
use SprykerShop\Yves\ProductConfigurationCartWidget\Widget\ProductConfigurationQuoteValidatorWidget;
86
use SprykerShop\Yves\ProductConfigurationWidget\Widget\ProductConfigurationProductDetailPageButtonWidget;
87
use SprykerShop\Yves\ProductConfigurationWidget\Widget\ProductConfigurationProductViewDisplayWidget;
88
use SprykerShop\Yves\ProductConfigurationWishlistWidget\Widget\ProductConfigurationWishlistFormWidget;
89
use SprykerShop\Yves\ProductConfigurationWishlistWidget\Widget\ProductConfigurationWishlistItemDisplayWidget;
90
use SprykerShop\Yves\ProductConfigurationWishlistWidget\Widget\ProductConfigurationWishlistPageButtonWidget;
91
use SprykerShop\Yves\ProductDiscontinuedWidget\Widget\ProductDiscontinuedNoteWidget;
92
use SprykerShop\Yves\ProductDiscontinuedWidget\Widget\ProductDiscontinuedWidget;
93
use SprykerShop\Yves\ProductGroupWidget\Widget\ProductGroupColorWidget;
94
use SprykerShop\Yves\ProductGroupWidget\Widget\ProductGroupWidget;
95
use SprykerShop\Yves\ProductLabelWidget\Widget\ProductAbstractLabelWidget;
96
use SprykerShop\Yves\ProductLabelWidget\Widget\ProductConcreteLabelWidget;
97
use SprykerShop\Yves\ProductOptionWidget\Widget\ProductOptionConfiguratorWidget;
98
use SprykerShop\Yves\ProductRelationWidget\Widget\SimilarProductsWidget;
99
use SprykerShop\Yves\ProductReplacementForWidget\Widget\ProductReplacementForListWidget;
100
use SprykerShop\Yves\ProductReviewWidget\Widget\DisplayProductAbstractReviewWidget;
101
use SprykerShop\Yves\ProductReviewWidget\Widget\ProductRatingFilterWidget;
102
use SprykerShop\Yves\ProductReviewWidget\Widget\ProductReviewDisplayWidget;
103
use SprykerShop\Yves\ProductSearchWidget\Widget\ProductConcreteAddWidget;
104
use SprykerShop\Yves\ProductSearchWidget\Widget\ProductConcreteSearchGridWidget;
105
use SprykerShop\Yves\ProductSearchWidget\Widget\ProductConcreteSearchWidget;
106
use SprykerShop\Yves\ProductWidget\Widget\CatalogPageProductWidget;
107
use SprykerShop\Yves\ProductWidget\Widget\CmsProductGroupWidget;
108
use SprykerShop\Yves\ProductWidget\Widget\CmsProductWidget;
109
use SprykerShop\Yves\ProductWidget\Widget\PdpProductRelationWidget;
110
use SprykerShop\Yves\ProductWidget\Widget\PdpProductReplacementForListWidget;
111
use SprykerShop\Yves\ProductWidget\Widget\ProductAlternativeWidget;
112
use SprykerShop\Yves\SalesConfigurableBundleWidget\Widget\OrderItemsConfiguredBundleWidget;
113
use SprykerShop\Yves\SalesOrderAmendmentWidget\Widget\CancelOrderAmendmentWidget;
114
use SprykerShop\Yves\SalesOrderAmendmentWidget\Widget\OrderAmendmentItemLinkWidget;
115
use SprykerShop\Yves\SalesOrderAmendmentWidget\Widget\OrderAmendmentWidget;
116
use SprykerShop\Yves\SalesOrderAmendmentWidget\Widget\UpdateOrderCheckoutSubmitButtonTextWidget;
117
use SprykerShop\Yves\SalesOrderAmendmentWidget\Widget\UpdateOrderCheckoutSuccessTitleWidget;
118
use SprykerShop\Yves\SalesOrderThresholdWidget\Widget\SalesOrderThresholdWidget;
119
use SprykerShop\Yves\SalesProductBundleWidget\Widget\OrderItemsProductBundleWidget;
120
use SprykerShop\Yves\SalesProductConfigurationWidget\Widget\ProductConfigurationOrderItemDisplayWidget;
121
use SprykerShop\Yves\ShopApplication\Plugin\Application\ShopApplicationApplicationPlugin;
122
use SprykerShop\Yves\ShopApplication\ShopApplicationDependencyProvider as SprykerShopApplicationDependencyProvider;
123
use SprykerShop\Yves\StoreWidget\Plugin\ShopApplication\StoreApplicationPlugin;
124
use SprykerShop\Yves\StoreWidget\Widget\StoreSwitcherWidget;
125
use SprykerShop\Yves\TabsWidget\Widget\FullTextSearchTabsWidget;
126
use SprykerShop\Yves\TraceableEventWidget\Widget\TraceableEventWidget;
127
use SprykerShop\Yves\WebProfilerWidget\Plugin\Application\WebProfilerApplicationPlugin;
128
use SprykerShop\Yves\WishlistWidget\Widget\WishlistMenuItemWidget;
129
130
/**
131
 * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
132
 */
133
class ShopApplicationDependencyProvider extends SprykerShopApplicationDependencyProvider
134
{
135
    /**
136
     * @return array<string>
137
     */
138
    protected function getGlobalWidgets(): array
139
    {
140
        return [
141
            AgentControlBarWidget::class,
142
            CartDiscountPromotionProductListWidget::class,
143
            CartCodeFormWidget::class,
144
            CartItemNoteFormWidget::class,
145
            CartNoteFormWidget::class,
146
            CatalogPageProductWidget::class,
147
            CheckoutBreadcrumbWidget::class,
148
            CmsProductGroupWidget::class,
149
            CmsProductWidget::class,
150
            CurrencyWidget::class,
151
            CurrencyIsoCodeWidget::class,
152
            CustomerNavigationWidget::class,
153
            DisplayProductAbstractReviewWidget::class,
154
            ProductGroupColorWidget::class,
155
            LanguageSwitcherWidget::class,
156
            NewsletterSubscriptionWidget::class,
157
            NewsletterSubscriptionSummaryWidget::class,
158
            PdpProductRelationWidget::class,
159
            PdpProductReplacementForListWidget::class,
160
            ProductReplacementForListWidget::class,
161
            PriceModeSwitcherWidget::class,
162
            ProductAbstractLabelWidget::class,
163
            ProductAlternativeListWidget::class,
164
            ProductAlternativeWidget::class,
165
            ProductBarcodeWidget::class,
166
            ProductBreadcrumbsWithCategoriesWidget::class,
167
            ProductBundleCartItemsListWidget::class,
168
            ProductBundleItemCounterWidget::class,
169
            ProductBundleItemsMultiCartItemsListWidget::class,
170
            ProductBundleMultiCartItemsListWidget::class,
171
            ProductConcreteLabelWidget::class,
172
            ProductDetailPageReviewWidget::class,
173
            ProductDiscontinuedNoteWidget::class,
174
            ProductDiscontinuedWidget::class,
175
            ProductGroupWidget::class,
176
            ProductOptionConfiguratorWidget::class,
177
            CurrentProductPriceVolumeWidget::class,
178
            ProductRatingFilterWidget::class,
179
            ProductReviewDisplayWidget::class,
180
            ProductSchemaOrgCategoryWidget::class,
181
            SalesOrderThresholdWidget::class,
182
            ShoppingListProductAlternativeWidget::class,
183
            SimilarProductsWidget::class,
184
            UpSellingProductsWidget::class,
185
            WishlistMenuItemWidget::class,
186
            WishlistProductAlternativeWidget::class,
187
            FullTextSearchTabsWidget::class,
188
            ProceedToCheckoutButtonWidget::class,
189
            ProductConcreteSearchWidget::class,
190
            ProductConcreteSearchGridWidget::class,
191
            PriceProductWidget::class,
192
            CategoryImageStorageWidget::class,
193
            AvailabilityNotificationSubscriptionWidget::class,
194
            ProductConcreteAddWidget::class,
195
            QuoteConfiguredBundleWidget::class,
196
            ConfiguredBundleNoteWidget::class,
197
            OrderCustomReferenceWidget::class,
198
            OrderItemsConfiguredBundleWidget::class,
199
            BarcodeWidget::class,
200
            AddToCartFormWidget::class,
201
            AddItemsFormWidget::class,
202
            CartChangeQuantityFormWidget::class,
203
            OrderItemsProductBundleWidget::class,
204
            RemoveFromCartFormWidget::class,
205
            ProductAbstractAddToCartButtonWidget::class,
206
            OrderCancelButtonWidget::class,
207
            CartAddProductAsSeparateItemWidget::class,
208
            ProductSetIdsWidget::class,
209
            AssetWidget::class,
210
            ProductBundleProductDetailPageItemsListWidget::class,
211
            ProductConfigurationCartPageButtonWidget::class,
212
            ProductConfigurationCartItemDisplayWidget::class,
213
            ProductConfigurationProductDetailPageButtonWidget::class,
214
            ProductConfigurationProductViewDisplayWidget::class,
215
            ProductConfigurationOrderItemDisplayWidget::class,
216
            ProductConfigurationQuoteValidatorWidget::class,
217
            ProductConfigurationWishlistFormWidget::class,
218
            ProductConfigurationWishlistItemDisplayWidget::class,
219
            ProductConfigurationWishlistPageButtonWidget::class,
220
            StoreSwitcherWidget::class,
221
            CartSummaryHideTaxAmountWidget::class,
222
            ComparisonProductTogglerComparisonListWidget::class,
223
            LinkToProductComparisonListWidget::class,
224
            ExpressCheckoutPaymentWidget::class,
225
            TraceableEventWidget::class,
226
            CustomerEmailChangeRequestWidget::class,
227
            SetMultiFactorAuthMenuItemWidget::class,
228
            MultiFactorAuthHandlerWidget::class,
229
            SitemapWidget::class,
230
            CartReorderWidget::class,
231
            CartReorderItemCheckboxWidget::class,
232
            CartReorderItemsWidget::class,
233
            OrderAmendmentWidget::class,
234
            CancelOrderAmendmentWidget::class,
235
            OrderAmendmentItemLinkWidget::class,
236
            UpdateOrderCheckoutSubmitButtonTextWidget::class,
237
            UpdateOrderCheckoutSuccessTitleWidget::class,
238
        ];
239
    }
240
241
    /**
242
     * @return array<\SprykerShop\Yves\ShopApplicationExtension\Dependency\Plugin\WidgetCacheKeyGeneratorStrategyPluginInterface>
243
     */
244
    protected function getWidgetCacheKeyGeneratorStrategyPlugins(): array
245
    {
246
        return [
247
            new CartDiscountPromotionProductListWidgetCacheKeyGeneratorStrategyPlugin(),
248
            new CartItemNoteFormWidgetCacheKeyGeneratorStrategyPlugin(),
249
        ];
250
    }
251
252
    /**
253
     * @return array<\SprykerShop\Yves\ShopApplicationExtension\Dependency\Plugin\FilterControllerEventHandlerPluginInterface>
254
     */
255
    protected function getFilterControllerEventSubscriberPlugins(): array
256
    {
257
        return [
258
            new LogoutInvalidatedCustomerFilterControllerEventHandlerPlugin(),
259
        ];
260
    }
261
262
    /**
263
     * @return array<\Spryker\Shared\ApplicationExtension\Dependency\Plugin\ApplicationPluginInterface>
264
     */
265
    protected function getApplicationPlugins(): array
266
    {
267
        $applicationPlugins = [
268
            new YvesHttpApplicationPlugin(),
269
            new TwigApplicationPlugin(),
270
            new EventDispatcherApplicationPlugin(),
271
            new ShopApplicationApplicationPlugin(),
272
            new StoreApplicationPlugin(),
273
            new LocaleApplicationPlugin(),
274
            new TranslatorApplicationPlugin(),
275
            new RouterApplicationPlugin(),
276
            new SessionApplicationPlugin(),
277
            new ErrorHandlerApplicationPlugin(),
278
            new FlashMessengerApplicationPlugin(),
279
            new FormApplicationPlugin(),
280
            new ValidatorApplicationPlugin(),
281
            new YvesSecurityApplicationPlugin(),
282
            new CustomerConfirmationUserCheckerApplicationPlugin(),
283
        ];
284
285
        if (class_exists(WebProfilerApplicationPlugin::class)) {
286
            $applicationPlugins[] = new WebProfilerApplicationPlugin();
287
        }
288
289
        return $applicationPlugins;
290
    }
291
}
292