Skip to content

Commit a889bdc

Browse files
committed
[TASK] Inject all dependencies via php and remove Services.yaml
1 parent 34d26d9 commit a889bdc

3 files changed

Lines changed: 178 additions & 85 deletions

File tree

Configuration/Services.php

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
namespace Extcode\CartProducts\Configuration;
66

77
use Extcode\CartProducts\Handler\WatchlistItemHandler;
8+
use Extcode\CartProducts\Hooks\DataHandler;
9+
use Extcode\CartProducts\Reaction\UpdateStockReaction;
810
use Symfony\Component\DependencyInjection\ContainerBuilder;
911
use Symfony\Component\DependencyInjection\Definition;
1012
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
@@ -24,4 +26,36 @@
2426
]
2527
);
2628
}
29+
30+
$services = $containerConfigurator
31+
->services()
32+
->defaults()
33+
->autowire()
34+
->autoconfigure()
35+
;
36+
37+
$services
38+
->load(
39+
'Extcode\\CartProducts\\',
40+
'../Classes/*'
41+
)
42+
->exclude(
43+
[
44+
'../Classes/Handler/WatchlistItemHandler.php',
45+
]
46+
)
47+
;
48+
49+
$services
50+
->set(DataHandler::class)
51+
->public()
52+
;
53+
54+
$services
55+
->set(UpdateStockReaction::class)
56+
->tag('reactions.reaction')
57+
->public()
58+
;
59+
60+
$containerConfigurator->import('Services/EventListeners.php');
2761
};

Configuration/Services.yaml

Lines changed: 0 additions & 85 deletions
This file was deleted.
Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
use Extcode\Cart\Event\CheckProductAvailabilityEvent;
6+
use Extcode\Cart\Event\Order\StockEvent;
7+
use Extcode\Cart\Event\ProcessOrderCheckStockEvent;
8+
use Extcode\Cart\Event\RetrieveProductsFromRequestEvent as CartRetrieveProductsFromRequestEvent;
9+
use Extcode\CartProducts\Event\RetrieveProductsFromRequestEvent as CartProductsRetrieveProductsFromRequestEvent;
10+
use Extcode\CartProducts\EventListener\CheckProductAvailability;
11+
use Extcode\CartProducts\EventListener\Create\CheckRequest;
12+
use Extcode\CartProducts\EventListener\Create\CreateCartBackendVariants;
13+
use Extcode\CartProducts\EventListener\Create\CreateCartFrontendVariants;
14+
use Extcode\CartProducts\EventListener\Create\CreateCartProduct;
15+
use Extcode\CartProducts\EventListener\Create\LoadProduct;
16+
use Extcode\CartProducts\EventListener\Order\Stock\CheckStock;
17+
use Extcode\CartProducts\EventListener\Order\Stock\FlushCache;
18+
use Extcode\CartProducts\EventListener\Order\Stock\HandleStock;
19+
use Extcode\CartProducts\EventListener\RetrieveProductsFromRequest;
20+
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
21+
22+
return static function (ContainerConfigurator $containerConfigurator): void {
23+
$services = $containerConfigurator
24+
->services()
25+
->defaults()
26+
->autowire()
27+
->autoconfigure()
28+
;
29+
30+
$services
31+
->set(CheckRequest::class)
32+
->tag(
33+
'event.listener',
34+
[
35+
'event' => CartProductsRetrieveProductsFromRequestEvent::class,
36+
'identifier' => 'cart-products--create--check-request',
37+
]
38+
)
39+
;
40+
41+
$services
42+
->set(LoadProduct::class)
43+
->tag(
44+
'event.listener',
45+
[
46+
'event' => CartProductsRetrieveProductsFromRequestEvent::class,
47+
'identifier' => 'cart-products--create--load-product',
48+
'after' => 'cart-products--create--check-request',
49+
]
50+
)
51+
;
52+
53+
$services
54+
->set(CreateCartFrontendVariants::class)
55+
->tag(
56+
'event.listener',
57+
[
58+
'event' => CartProductsRetrieveProductsFromRequestEvent::class,
59+
'identifier' => 'cart-products--create--create-cart-frontend-variants',
60+
'after' => 'cart-products--create--load-product',
61+
]
62+
)
63+
;
64+
65+
$services
66+
->set(CreateCartProduct::class)
67+
->tag(
68+
'event.listener',
69+
[
70+
'event' => CartProductsRetrieveProductsFromRequestEvent::class,
71+
'identifier' => 'cart-products--create--create-cart-product',
72+
'after' => 'cart-products--create--create-cart-frontend-variants',
73+
]
74+
)
75+
;
76+
77+
$services
78+
->set(CreateCartBackendVariants::class)
79+
->tag(
80+
'event.listener',
81+
[
82+
'event' => CartProductsRetrieveProductsFromRequestEvent::class,
83+
'identifier' => 'cart-products--create--create-cart-backend-variants',
84+
'after' => 'cart-products--create--create-cart-product',
85+
]
86+
)
87+
;
88+
89+
$services
90+
->set(HandleStock::class)
91+
->tag(
92+
'event.listener',
93+
[
94+
'event' => StockEvent::class,
95+
'identifier' => 'cart-products--order--stock--handle-stock',
96+
]
97+
)
98+
;
99+
100+
$services
101+
->set(FlushCache::class)
102+
->tag(
103+
'event.listener',
104+
[
105+
'event' => StockEvent::class,
106+
'identifier' => 'cart-products--order--stock--flush-cache',
107+
'after' => 'cart-books--order--stock--handle-stock',
108+
]
109+
)
110+
;
111+
112+
$services
113+
->set(RetrieveProductsFromRequest::class)
114+
->tag(
115+
'event.listener',
116+
[
117+
'event' => CartRetrieveProductsFromRequestEvent::class,
118+
'identifier' => 'cart-products--retrieve-products-from-request',
119+
]
120+
)
121+
;
122+
123+
$services
124+
->set(CheckProductAvailability::class)
125+
->tag(
126+
'event.listener',
127+
[
128+
'event' => CheckProductAvailabilityEvent::class,
129+
'identifier' => 'cart-products--check-product-availability',
130+
]
131+
)
132+
;
133+
134+
$services
135+
->set(CheckStock::class)
136+
->tag(
137+
'event.listener',
138+
[
139+
'event' => ProcessOrderCheckStockEvent::class,
140+
'identifier' => 'cart-products--order--stock-check-stock',
141+
]
142+
)
143+
;
144+
};

0 commit comments

Comments
 (0)