Skip to content

Commit a0afc76

Browse files
hkreuterclaude
andcommitted
OXDEV-9642 - Replace auto-discovery with explicit service definitions
Remove resource glob pattern from services.yaml that caused abstract classes to be registered as services. This caused module activation to fail because OXID's RoutePass tried to load routes from abstract classes. Changes: - Replace `resource: 'src/*'` with explicit imports per domain - Add hierarchical services.yaml files (Domain/Subdomain pattern) - Define each service explicitly with proper visibility - Add interface aliases for OxNewFactoryInterface and RepositoryInterface Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 1feac42 commit a0afc76

92 files changed

Lines changed: 839 additions & 75 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

services.yaml

Lines changed: 27 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -2,47 +2,41 @@ parameters:
22
oxidesales.graphqlstorefront.depends_on_modules: [ 'oe_graphql_base' ]
33

44
imports:
5+
- { resource: src/Shared/services.yaml }
6+
- { resource: src/Action/services.yaml }
7+
- { resource: src/Address/services.yaml }
8+
- { resource: src/Attribute/services.yaml }
9+
- { resource: src/Banner/services.yaml }
10+
- { resource: src/Basket/services.yaml }
11+
- { resource: src/Category/services.yaml }
12+
- { resource: src/Contact/services.yaml }
13+
- { resource: src/Content/services.yaml }
14+
- { resource: src/Country/services.yaml }
15+
- { resource: src/Currency/services.yaml }
516
- { resource: src/Customer/services.yaml }
17+
- { resource: src/DeliveryMethod/services.yaml }
18+
- { resource: src/File/services.yaml }
19+
- { resource: src/Framework/services.yaml }
20+
- { resource: src/Link/services.yaml }
21+
- { resource: src/Manufacturer/services.yaml }
22+
- { resource: src/NewsletterStatus/services.yaml }
23+
- { resource: src/Order/services.yaml }
24+
- { resource: src/Payment/services.yaml }
25+
- { resource: src/Product/services.yaml }
26+
- { resource: src/Promotion/services.yaml }
27+
- { resource: src/Review/services.yaml }
28+
- { resource: src/Translation/services.yaml }
29+
- { resource: src/Vendor/services.yaml }
30+
- { resource: src/Voucher/services.yaml }
31+
- { resource: src/WishedPrice/services.yaml }
632

733
services:
8-
934
_defaults:
10-
public: false
1135
autowire: true
36+
public: false
1237

1338
OxidEsales\Eshop\Core\Registry:
1439
class: OxidEsales\Eshop\Core\Registry
1540

1641
OxidEsales\Eshop\Core\Language:
1742
factory: [ '@OxidEsales\Eshop\Core\Registry', 'getLang' ]
18-
19-
OxidEsales\GraphQL\Storefront\:
20-
resource: 'src/*'
21-
exclude:
22-
- 'src/**/{DataType,Exception,Shop,Event,Subscriber}'
23-
- 'src/Customer'
24-
public: true
25-
26-
OxidEsales\GraphQL\Storefront\Shared\Service\NamespaceMapper:
27-
class: OxidEsales\GraphQL\Storefront\Shared\Service\NamespaceMapper
28-
tags: [ 'graphql_namespace_mapper' ]
29-
30-
OxidEsales\GraphQL\Storefront\Shared\Service\PermissionProvider:
31-
class: OxidEsales\GraphQL\Storefront\Shared\Service\PermissionProvider
32-
tags: [ 'graphql_permission_provider' ]
33-
34-
OxidEsales\GraphQL\Storefront\Basket\Subscriber\BasketAuthorization:
35-
class: OxidEsales\GraphQL\Storefront\Basket\Subscriber\BasketAuthorization
36-
tags: [ 'kernel.event_subscriber' ]
37-
38-
OxidEsales\GraphQL\Storefront\Shared\Infrastructure\ListConfiguration:
39-
class: OxidEsales\GraphQL\Storefront\Shared\Infrastructure\ListConfiguration
40-
arguments:
41-
$map: { }
42-
public: true
43-
44-
OxidEsales\GraphQL\Storefront\Shared\Subscriber\BeforeModuleDeactivation:
45-
class: OxidEsales\GraphQL\Storefront\Shared\Subscriber\BeforeModuleDeactivation
46-
arguments: [ '%oxidesales.graphqlstorefront.depends_on_modules%' ]
47-
tags: [ 'kernel.event_subscriber' ]
48-
public: true
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
services:
2+
_defaults:
3+
autowire: true
4+
public: false
5+
6+
OxidEsales\GraphQL\Storefront\Action\Controller\Action:
7+
public: true

src/Action/Service/services.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
services:
2+
_defaults:
3+
autowire: true
4+
public: false
5+
6+
OxidEsales\GraphQL\Storefront\Action\Service\Action:
7+
public: true

src/Action/services.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
imports:
2+
- { resource: Controller/services.yaml }
3+
- { resource: Service/services.yaml }
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
services:
2+
_defaults:
3+
autowire: true
4+
public: false
5+
6+
OxidEsales\GraphQL\Storefront\Address\Controller\DeliveryAddress:
7+
public: true
8+
9+
OxidEsales\GraphQL\Storefront\Address\Controller\InvoiceAddress:
10+
public: true
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
services:
2+
_defaults:
3+
autowire: true
4+
public: false
5+
6+
OxidEsales\GraphQL\Storefront\Address\Infrastructure\DeliveryAddressFactory:
7+
public: true
8+
9+
OxidEsales\GraphQL\Storefront\Address\Infrastructure\InvoiceAddressFactory:
10+
public: true

src/Address/Service/services.yaml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
services:
2+
_defaults:
3+
autowire: true
4+
public: false
5+
6+
OxidEsales\GraphQL\Storefront\Address\Service\DeliveryAddress:
7+
public: true
8+
9+
OxidEsales\GraphQL\Storefront\Address\Service\DeliveryAddressInput:
10+
public: true
11+
12+
OxidEsales\GraphQL\Storefront\Address\Service\DeliveryAddressRelations:
13+
public: true
14+
15+
OxidEsales\GraphQL\Storefront\Address\Service\InvoiceAddress:
16+
public: true
17+
18+
OxidEsales\GraphQL\Storefront\Address\Service\InvoiceAddressInput:
19+
public: true
20+
21+
OxidEsales\GraphQL\Storefront\Address\Service\InvoiceAddressRelations:
22+
public: true

src/Address/services.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
imports:
2+
- { resource: Controller/services.yaml }
3+
- { resource: Infrastructure/services.yaml }
4+
- { resource: Service/services.yaml }
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
services:
2+
_defaults:
3+
autowire: true
4+
public: false
5+
6+
OxidEsales\GraphQL\Storefront\Attribute\Controller\Attribute:
7+
public: true
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
services:
2+
_defaults:
3+
autowire: true
4+
public: false
5+
6+
OxidEsales\GraphQL\Storefront\Attribute\Service\Attribute:
7+
public: true

0 commit comments

Comments
 (0)