-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathservices.yaml
63 lines (51 loc) · 2.66 KB
/
services.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# Put parameters here that don't need to change on each machine where the app is deployed
# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
parameters:
locale: 'en'
mailer:
verification.from_email: 'admin@example.com'
jwt.private_key_file: '%kernel.project_dir%/%env(JWT_PRIVATE_KEY_FILE)%'
jwt.public_key_file: '%kernel.project_dir%/%env(JWT_PUBLIC_KEY_FILE)%'
services:
# default configuration for services in *this* file
_defaults:
autowire: true # Automatically injects dependencies in your services.
autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
public: false # Allows optimizing the container by removing unused services; this also means
# fetching services directly from the container via $container->get() won't work.
# The best practice is to be explicit about your dependencies anyway.
# makes classes in src/ available to be used as services
# this creates a service per class whose id is the fully-qualified class name
App\:
resource: '../src/*'
exclude: '../src/{Entity,Migrations,Tests,Kernel.php}'
# controllers are imported separately to make sure services can be injected
# as action arguments even if you don't extend any base controller class
App\Controller\:
resource: '../src/Controller'
tags: ['controller.service_arguments']
# Components configuration below.
#
# I decided to separate the components and the services to show its role in the overall architecture. Inspired
# by String stereotype annotations.
# https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/stereotype/package-summary.html
# serializer configuration
App\Component\Serializer\Normalizer\DtoObjectNormalizer:
tags:
- { name: 'serializer.normalizer', priority: 1 }
Symfony\Component\Serializer\Normalizer\DateTimeNormalizer:
tags:
- { name: 'serializer.normalizer', priority: 10 }
# send defined email messages
# like a verification email, a password reset email, and etc.
App\Component\Mailer\Mailer:
arguments:
$parameters: '%mailer%'
# convert HTTP exceptions to JSON response
App\Component\HttpKernel\EventListener\HttpExceptionListener:
tags:
- { name: 'kernel.event_listener', event: 'kernel.exception' }
App\Component\Jwt\JwtTokenManager:
arguments:
$privateKeyFile: '%jwt.private_key_file%'
$publicKeyFile: '%jwt.public_key_file%'