getGlobalWidgets()   B
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 112
Code Lines 110

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 110
dl 0
loc 112
rs 8
c 1
b 0
f 0
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\ClickAndCollectPageExample\Plugin\ShopApplication\ClickAndCollectServicePointAddressFormWidgetCacheKeyGeneratorStrategyPlugin;
53
use SprykerShop\Yves\ClickAndCollectPageExample\Widget\ClickAndCollectServicePointAddressFormWidget;
54
use SprykerShop\Yves\ConfigurableBundleNoteWidget\Widget\ConfiguredBundleNoteWidget;
55
use SprykerShop\Yves\ConfigurableBundleWidget\Widget\QuoteConfiguredBundleWidget;
56
use SprykerShop\Yves\CurrencyWidget\Widget\CurrencyWidget;
57
use SprykerShop\Yves\CustomerPage\Plugin\Application\CustomerConfirmationUserCheckerApplicationPlugin;
58
use SprykerShop\Yves\CustomerPage\Widget\CustomerNavigationWidget;
59
use SprykerShop\Yves\CustomerValidationPage\Plugin\ShopApplication\LogoutInvalidatedCustomerFilterControllerEventHandlerPlugin;
60
use SprykerShop\Yves\DiscountPromotionWidget\Plugin\ShopApplication\CartDiscountPromotionProductListWidgetCacheKeyGeneratorStrategyPlugin;
61
use SprykerShop\Yves\DiscountPromotionWidget\Widget\CartDiscountPromotionProductListWidget;
62
use SprykerShop\Yves\LanguageSwitcherWidget\Widget\LanguageSwitcherWidget;
63
use SprykerShop\Yves\MerchantOpeningHoursWidget\Widget\MerchantOpeningHoursWidget;
64
use SprykerShop\Yves\MerchantProductOfferWidget\Widget\MerchantProductOfferWidget;
65
use SprykerShop\Yves\MerchantProductWidget\Widget\MerchantProductWidget;
66
use SprykerShop\Yves\MerchantSalesOrderWidget\Widget\MerchantOrderReferenceForItemsWidget;
67
use SprykerShop\Yves\MerchantSalesReturnWidget\Plugin\MerchantSalesReturnCreateFormWidgetCacheKeyGeneratorStrategyPlugin;
68
use SprykerShop\Yves\MerchantSalesReturnWidget\Widget\MerchantSalesReturnCreateFormWidget;
69
use SprykerShop\Yves\MerchantWidget\Widget\SoldByMerchantWidget;
70
use SprykerShop\Yves\MoneyWidget\Widget\CurrencyIsoCodeWidget;
71
use SprykerShop\Yves\NewsletterWidget\Widget\NewsletterSubscriptionSummaryWidget;
72
use SprykerShop\Yves\NewsletterWidget\Widget\NewsletterSubscriptionWidget;
73
use SprykerShop\Yves\OrderCancelWidget\Widget\OrderCancelButtonWidget;
74
use SprykerShop\Yves\OrderCustomReferenceWidget\Widget\OrderCustomReferenceWidget;
75
use SprykerShop\Yves\PaymentAppWidget\Widget\ExpressCheckoutPaymentWidget;
76
use SprykerShop\Yves\PriceProductVolumeWidget\Widget\CurrentProductPriceVolumeWidget;
77
use SprykerShop\Yves\PriceProductWidget\Widget\PriceProductWidget;
78
use SprykerShop\Yves\PriceWidget\Widget\PriceModeSwitcherWidget;
79
use SprykerShop\Yves\ProductAlternativeWidget\Widget\ProductAlternativeListWidget;
80
use SprykerShop\Yves\ProductAlternativeWidget\Widget\ShoppingListProductAlternativeWidget;
81
use SprykerShop\Yves\ProductAlternativeWidget\Widget\WishlistProductAlternativeWidget;
82
use SprykerShop\Yves\ProductBarcodeWidget\Widget\ProductBarcodeWidget;
83
use SprykerShop\Yves\ProductBundleWidget\Widget\ProductBundleCartItemsListWidget;
84
use SprykerShop\Yves\ProductBundleWidget\Widget\ProductBundleItemCounterWidget;
85
use SprykerShop\Yves\ProductBundleWidget\Widget\ProductBundleItemsMultiCartItemsListWidget;
86
use SprykerShop\Yves\ProductBundleWidget\Widget\ProductBundleMultiCartItemsListWidget;
87
use SprykerShop\Yves\ProductBundleWidget\Widget\ProductBundleProductDetailPageItemsListWidget;
88
use SprykerShop\Yves\ProductCategoryWidget\Widget\ProductBreadcrumbsWithCategoriesWidget;
89
use SprykerShop\Yves\ProductCategoryWidget\Widget\ProductSchemaOrgCategoryWidget;
90
use SprykerShop\Yves\ProductConfigurationCartWidget\Widget\ProductConfigurationCartItemDisplayWidget;
91
use SprykerShop\Yves\ProductConfigurationCartWidget\Widget\ProductConfigurationCartPageButtonWidget;
92
use SprykerShop\Yves\ProductConfigurationCartWidget\Widget\ProductConfigurationQuoteValidatorWidget;
93
use SprykerShop\Yves\ProductConfigurationWidget\Widget\ProductConfigurationProductDetailPageButtonWidget;
94
use SprykerShop\Yves\ProductConfigurationWidget\Widget\ProductConfigurationProductViewDisplayWidget;
95
use SprykerShop\Yves\ProductConfigurationWishlistWidget\Widget\ProductConfigurationWishlistFormWidget;
96
use SprykerShop\Yves\ProductConfigurationWishlistWidget\Widget\ProductConfigurationWishlistItemDisplayWidget;
97
use SprykerShop\Yves\ProductConfigurationWishlistWidget\Widget\ProductConfigurationWishlistPageButtonWidget;
98
use SprykerShop\Yves\ProductDiscontinuedWidget\Widget\ProductDiscontinuedNoteWidget;
99
use SprykerShop\Yves\ProductDiscontinuedWidget\Widget\ProductDiscontinuedWidget;
100
use SprykerShop\Yves\ProductGroupWidget\Widget\ProductGroupColorWidget;
101
use SprykerShop\Yves\ProductGroupWidget\Widget\ProductGroupWidget;
102
use SprykerShop\Yves\ProductLabelWidget\Widget\ProductAbstractLabelWidget;
103
use SprykerShop\Yves\ProductLabelWidget\Widget\ProductConcreteLabelWidget;
104
use SprykerShop\Yves\ProductOfferServicePointAvailabilityWidget\Widget\ProductOfferServicePointAvailabilityDisplayWidget;
105
use SprykerShop\Yves\ProductOfferServicePointAvailabilityWidget\Widget\ProductOfferServicePointAvailabilityWidget;
106
use SprykerShop\Yves\ProductOptionWidget\Widget\ProductOptionConfiguratorWidget;
107
use SprykerShop\Yves\ProductRelationWidget\Widget\SimilarProductsWidget;
108
use SprykerShop\Yves\ProductReplacementForWidget\Widget\ProductReplacementForListWidget;
109
use SprykerShop\Yves\ProductReviewWidget\Widget\DisplayProductAbstractReviewWidget;
110
use SprykerShop\Yves\ProductReviewWidget\Widget\ProductRatingFilterWidget;
111
use SprykerShop\Yves\ProductReviewWidget\Widget\ProductReviewDisplayWidget;
112
use SprykerShop\Yves\ProductSearchWidget\Widget\ProductConcreteAddWidget;
113
use SprykerShop\Yves\ProductSearchWidget\Widget\ProductConcreteSearchGridWidget;
114
use SprykerShop\Yves\ProductSearchWidget\Widget\ProductConcreteSearchWidget;
115
use SprykerShop\Yves\ProductWidget\Widget\CatalogPageProductWidget;
116
use SprykerShop\Yves\ProductWidget\Widget\CmsProductGroupWidget;
117
use SprykerShop\Yves\ProductWidget\Widget\CmsProductWidget;
118
use SprykerShop\Yves\ProductWidget\Widget\PdpProductRelationWidget;
119
use SprykerShop\Yves\ProductWidget\Widget\PdpProductReplacementForListWidget;
120
use SprykerShop\Yves\ProductWidget\Widget\ProductAlternativeWidget;
121
use SprykerShop\Yves\SalesConfigurableBundleWidget\Widget\OrderItemsConfiguredBundleWidget;
122
use SprykerShop\Yves\SalesOrderAmendmentWidget\Widget\CancelOrderAmendmentWidget;
123
use SprykerShop\Yves\SalesOrderAmendmentWidget\Widget\OrderAmendmentItemLinkWidget;
124
use SprykerShop\Yves\SalesOrderAmendmentWidget\Widget\OrderAmendmentWidget;
125
use SprykerShop\Yves\SalesOrderAmendmentWidget\Widget\UpdateOrderCheckoutSubmitButtonTextWidget;
126
use SprykerShop\Yves\SalesOrderAmendmentWidget\Widget\UpdateOrderCheckoutSuccessTitleWidget;
127
use SprykerShop\Yves\SalesOrderThresholdWidget\Widget\SalesOrderThresholdWidget;
128
use SprykerShop\Yves\SalesProductBundleWidget\Widget\OrderItemsProductBundleWidget;
129
use SprykerShop\Yves\SalesProductConfigurationWidget\Widget\ProductConfigurationOrderItemDisplayWidget;
130
use SprykerShop\Yves\SalesServicePointWidget\Widget\SalesServicePointNameForShipmentGroupWidget;
131
use SprykerShop\Yves\ServicePointWidget\Widget\ServicePointNameForShipmentGroupWidget;
132
use SprykerShop\Yves\ServicePointWidget\Widget\ServicePointSearchWidget;
133
use SprykerShop\Yves\ShipmentTypeWidget\Plugin\ShopApplication\ShipmentTypeAddressFormWidgetCacheKeyGeneratorStrategyPlugin;
134
use SprykerShop\Yves\ShipmentTypeWidget\Widget\ShipmentTypeAddressFormWidget;
135
use SprykerShop\Yves\ShopApplication\Plugin\Application\ShopApplicationApplicationPlugin;
136
use SprykerShop\Yves\ShopApplication\ShopApplicationDependencyProvider as SprykerShopApplicationDependencyProvider;
137
use SprykerShop\Yves\StoreWidget\Plugin\ShopApplication\StoreApplicationPlugin;
138
use SprykerShop\Yves\StoreWidget\Widget\StoreSwitcherWidget;
139
use SprykerShop\Yves\TabsWidget\Widget\FullTextSearchTabsWidget;
140
use SprykerShop\Yves\TraceableEventWidget\Widget\TraceableEventWidget;
141
use SprykerShop\Yves\WebProfilerWidget\Plugin\Application\WebProfilerApplicationPlugin;
142
use SprykerShop\Yves\WishlistWidget\Widget\WishlistMenuItemWidget;
143
144
/**
145
 * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
146
 */
147
class ShopApplicationDependencyProvider extends SprykerShopApplicationDependencyProvider
148
{
149
    /**
150
     * @phpstan-return array<class-string<\Spryker\Yves\Kernel\Widget\AbstractWidget>>
151
     *
152
     * @return array<string>
153
     */
154
    protected function getGlobalWidgets(): array
155
    {
156
        return [
157
            AgentControlBarWidget::class,
158
            CartDiscountPromotionProductListWidget::class,
159
            CartCodeFormWidget::class,
160
            CartItemNoteFormWidget::class,
161
            CartNoteFormWidget::class,
162
            CatalogPageProductWidget::class,
163
            CheckoutBreadcrumbWidget::class,
164
            CmsProductGroupWidget::class,
165
            CmsProductWidget::class,
166
            CurrencyWidget::class,
167
            CurrencyIsoCodeWidget::class,
168
            CustomerNavigationWidget::class,
169
            DisplayProductAbstractReviewWidget::class,
170
            ProductGroupColorWidget::class,
171
            LanguageSwitcherWidget::class,
172
            NewsletterSubscriptionWidget::class,
173
            NewsletterSubscriptionSummaryWidget::class,
174
            PdpProductRelationWidget::class,
175
            PdpProductReplacementForListWidget::class,
176
            ProductReplacementForListWidget::class,
177
            PriceModeSwitcherWidget::class,
178
            ProductAbstractLabelWidget::class,
179
            ProductAlternativeListWidget::class,
180
            ProductAlternativeWidget::class,
181
            ProductBarcodeWidget::class,
182
            ProductBreadcrumbsWithCategoriesWidget::class,
183
            ProductBundleCartItemsListWidget::class,
184
            ProductBundleItemCounterWidget::class,
185
            ProductBundleItemsMultiCartItemsListWidget::class,
186
            ProductBundleMultiCartItemsListWidget::class,
187
            ProductConcreteLabelWidget::class,
188
            ProductDetailPageReviewWidget::class,
189
            ProductDiscontinuedNoteWidget::class,
190
            ProductDiscontinuedWidget::class,
191
            ProductGroupWidget::class,
192
            ProductOptionConfiguratorWidget::class,
193
            CurrentProductPriceVolumeWidget::class,
194
            ProductRatingFilterWidget::class,
195
            ProductReviewDisplayWidget::class,
196
            ProductSchemaOrgCategoryWidget::class,
197
            SalesOrderThresholdWidget::class,
198
            ShoppingListProductAlternativeWidget::class,
199
            SimilarProductsWidget::class,
200
            UpSellingProductsWidget::class,
201
            WishlistMenuItemWidget::class,
202
            WishlistProductAlternativeWidget::class,
203
            FullTextSearchTabsWidget::class,
204
            ProceedToCheckoutButtonWidget::class,
205
            ProductConcreteSearchWidget::class,
206
            ProductConcreteSearchGridWidget::class,
207
            ProductSetIdsWidget::class,
208
            PriceProductWidget::class,
209
            CategoryImageStorageWidget::class,
210
            AvailabilityNotificationSubscriptionWidget::class,
211
            ProductConcreteAddWidget::class,
212
            QuoteConfiguredBundleWidget::class,
213
            ConfiguredBundleNoteWidget::class,
214
            OrderCustomReferenceWidget::class,
215
            OrderItemsConfiguredBundleWidget::class,
216
            BarcodeWidget::class,
217
            AddToCartFormWidget::class,
218
            AddItemsFormWidget::class,
219
            CartChangeQuantityFormWidget::class,
220
            OrderItemsProductBundleWidget::class,
221
            RemoveFromCartFormWidget::class,
222
            ProductAbstractAddToCartButtonWidget::class,
223
            OrderCancelButtonWidget::class,
224
            CartAddProductAsSeparateItemWidget::class,
225
            MerchantProductOfferWidget::class,
226
            SoldByMerchantWidget::class,
227
            CurrentProductPriceVolumeWidget::class,
228
            MerchantProductWidget::class,
229
            MerchantOpeningHoursWidget::class,
230
            MerchantSalesReturnCreateFormWidget::class,
231
            MerchantOrderReferenceForItemsWidget::class,
232
            AssetWidget::class,
233
            ProductBundleProductDetailPageItemsListWidget::class,
234
            ProductConfigurationCartPageButtonWidget::class,
235
            ProductConfigurationCartItemDisplayWidget::class,
236
            ProductConfigurationProductDetailPageButtonWidget::class,
237
            ProductConfigurationProductViewDisplayWidget::class,
238
            ProductConfigurationOrderItemDisplayWidget::class,
239
            ProductConfigurationQuoteValidatorWidget::class,
240
            ProductConfigurationWishlistFormWidget::class,
241
            ProductConfigurationWishlistItemDisplayWidget::class,
242
            ProductConfigurationWishlistPageButtonWidget::class,
243
            StoreSwitcherWidget::class,
244
            ServicePointSearchWidget::class,
245
            ShipmentTypeAddressFormWidget::class,
246
            SalesServicePointNameForShipmentGroupWidget::class,
247
            ClickAndCollectServicePointAddressFormWidget::class,
248
            ProductOfferServicePointAvailabilityWidget::class,
249
            ProductOfferServicePointAvailabilityDisplayWidget::class,
250
            CartSummaryHideTaxAmountWidget::class,
251
            ServicePointNameForShipmentGroupWidget::class,
252
            TraceableEventWidget::class,
253
            ExpressCheckoutPaymentWidget::class,
254
            CustomerEmailChangeRequestWidget::class,
255
            SetMultiFactorAuthMenuItemWidget::class,
256
            MultiFactorAuthHandlerWidget::class,
257
            SitemapWidget::class,
258
            CartReorderWidget::class,
259
            CartReorderItemCheckboxWidget::class,
260
            CartReorderItemsWidget::class,
261
            OrderAmendmentWidget::class,
262
            CancelOrderAmendmentWidget::class,
263
            OrderAmendmentItemLinkWidget::class,
264
            UpdateOrderCheckoutSubmitButtonTextWidget::class,
265
            UpdateOrderCheckoutSuccessTitleWidget::class,
266
        ];
267
    }
268
269
    /**
270
     * @return array<\SprykerShop\Yves\ShopApplicationExtension\Dependency\Plugin\WidgetCacheKeyGeneratorStrategyPluginInterface>
271
     */
272
    protected function getWidgetCacheKeyGeneratorStrategyPlugins(): array
273
    {
274
        return [
275
            new CartDiscountPromotionProductListWidgetCacheKeyGeneratorStrategyPlugin(),
276
            new CartItemNoteFormWidgetCacheKeyGeneratorStrategyPlugin(),
277
            new MerchantSalesReturnCreateFormWidgetCacheKeyGeneratorStrategyPlugin(),
278
            new ShipmentTypeAddressFormWidgetCacheKeyGeneratorStrategyPlugin(),
279
            new ClickAndCollectServicePointAddressFormWidgetCacheKeyGeneratorStrategyPlugin(),
280
        ];
281
    }
282
283
    /**
284
     * @return array<\SprykerShop\Yves\ShopApplicationExtension\Dependency\Plugin\FilterControllerEventHandlerPluginInterface>
285
     */
286
    protected function getFilterControllerEventSubscriberPlugins(): array
287
    {
288
        return [
289
            new LogoutInvalidatedCustomerFilterControllerEventHandlerPlugin(),
290
        ];
291
    }
292
293
    /**
294
     * @return array<\Spryker\Shared\ApplicationExtension\Dependency\Plugin\ApplicationPluginInterface>
295
     */
296
    protected function getApplicationPlugins(): array
297
    {
298
        $applicationPlugins = [
299
            new YvesHttpApplicationPlugin(),
300
            new TwigApplicationPlugin(),
301
            new EventDispatcherApplicationPlugin(),
302
            new ShopApplicationApplicationPlugin(),
303
            new StoreApplicationPlugin(),
304
            new LocaleApplicationPlugin(),
305
            new TranslatorApplicationPlugin(),
306
            new RouterApplicationPlugin(),
307
            new SessionApplicationPlugin(),
308
            new ErrorHandlerApplicationPlugin(),
309
            new FlashMessengerApplicationPlugin(),
310
            new FormApplicationPlugin(),
311
            new ValidatorApplicationPlugin(),
312
            new YvesSecurityApplicationPlugin(),
313
            new CustomerConfirmationUserCheckerApplicationPlugin(),
314
        ];
315
316
        if (class_exists(WebProfilerApplicationPlugin::class)) {
317
            $applicationPlugins[] = new WebProfilerApplicationPlugin();
318
        }
319
320
        return $applicationPlugins;
321
    }
322
}
323