Skip to content

Commit 2eebdcc

Browse files
committed
Update examples in readme to complete serviceProviders
1 parent 189fd3f commit 2eebdcc

File tree

1 file changed

+34
-12
lines changed

1 file changed

+34
-12
lines changed

README.md

Lines changed: 34 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,23 @@ We somehow need to automatically wire the incoming request based on the request
6161
If there is a container available, we can then add a dynamic abstract concrete binding:
6262

6363
```php
64-
$resolvedSet->add(
65-
new AbstractConcrete(
66-
$identifier,
67-
fn (ObjectResolver $objectResolver, Request $request) => $objectResolver->resolveFromParams($identifier, $request->params()),
68-
)
69-
);
64+
final class RequestObjectServiceProvider implements ServiceProviderInterface {
65+
#[Override]
66+
public function provides(string $identifier): bool {
67+
return is_a($identifier, RequestObject::class, true);
68+
}
69+
70+
/** @throws InvalidArgumentException */
71+
#[Override]
72+
public function register(string $identifier, DefinitionSet $resolvedSet): void {
73+
$resolvedSet->add(
74+
new AbstractConcrete(
75+
$identifier,
76+
fn (ObjectResolver $objectResolver, Request $request) => $objectResolver->resolveFromParams($identifier, $request->params()),
77+
)
78+
);
79+
}
80+
}
7081
```
7182

7283
## Casing conversion
@@ -76,12 +87,23 @@ Because code conventions between different tech stacks might differ, it's possib
7687
Let's say there's a form in HTML that has name `user_name`, but in the backend our model has parameter `$userName`. This can be automatically converted, by supplying the parameters `$enforcePropertyNameCasing` and `$convertFromParamKeyCasing`:
7788

7889
```php
79-
$resolvedSet->add(
80-
new Concrete(
81-
$identifier,
82-
fn () => new ObjectResolver(Casing::camel, Casing::snake)
83-
)
84-
);
90+
final class ObjectResolverServiceProvider implements ServiceProviderInterface {
91+
#[Override]
92+
public function provides(string $identifier): bool {
93+
return $identifier === ObjectResolver::class;
94+
}
95+
96+
/** @throws InvalidArgumentException */
97+
#[Override]
98+
public function register(string $identifier, DefinitionSet $resolvedSet): void {
99+
$resolvedSet->add(
100+
new Concrete(
101+
$identifier,
102+
fn () => new ObjectResolver(Casing::camel, Casing::snake)
103+
)
104+
);
105+
}
106+
}
85107
```
86108

87109
## Json from APIs etc

0 commit comments

Comments
 (0)