zend-blog-3-backend
183 строки · 6.6 Кб
1# This file is the entry point to configure your own services.
2# Files in the packages/ subdirectory configure your dependencies.
3
4# Put parameters here that don't need to change on each machine where the app is deployed
5# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
6parameters:
7cdn_url: '%env(CDN_URL)%'
8frontend_site: '%env(FRONT_SITE)%'
9locale: 'ru'
10browsertitle: '%env(SITE_BROWSERTITLE)%'
11mailer_transport: smtp
12mailer_host: '%env(MAILER_HOST)%'
13mailer_port: '%env(MAILER_PORT)%'
14mailer_user: '%env(MAILER_USER)%'
15mailer_password: '%env(MAILER_PASSWORD)%'
16mailer_encryption: '%env(MAILER_ENCRYPTION)%'
17env(MAILER_ENCRYPTION): ~
18gitrepo_webhook_token: '%env(WEBHOOK_GIT_TOKEN)%'
19telegram_token: '%env(TELEGRAM_TOKEN)%'
20telegram_bot: '%env(TELEGRAM_BOT)%'
21telegram_admin_id: '%env(int:TELEGRAM_ADMIN_ID)%'
22telegram_webhook_token: '%env(TELEGRAM_WEBHOOK_TOKEN)%'
23ipinfo_db_key: '%env(IPINFO_DB_KEY)%'
24dropbox_key: '%env(DROPBOX_KEY)%'
25dropbox_secret: '%env(DROPBOX_SECRET)%'
26wsse_token_lifetime: '%env(int:WSSE_TOKEN_LIFETIME)%'
27space_login: '%env(SPACE_LOGIN)%'
28space_password: '%env(SPACE_PASSWORD)%'
29
30services:
31# default configuration for services in *this* file
32_defaults:
33autowire: true # Automatically injects dependencies in your services.
34autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
35public: false # Allows optimizing the container by removing unused services; this also means
36# fetching services directly from the container via $container->get() won't work.
37# The best practice is to be explicit about your dependencies anyway.
38bind:
39$cdnUrl: '%cdn_url%'
40$frontendSite: '%frontend_site%'
41
42# makes classes in src/ available to be used as services
43# this creates a service per class whose id is the fully-qualified class name
44App\:
45resource: '../src/App/*'
46exclude: '../src/App/{DependencyInjection,Entity,Model,Event,OAuth2/Client,OAuth2/Providers,Tests,Service/IpInfo/LocationInfo.php,Kernel.php,Utils,Doctrine/DBAL,DTO,Form,Exception}'
47
48# controllers are imported separately to make sure services can be injected
49# as action arguments even if you don't extend any base controller class
50App\Controller\:
51resource: '../src/App/Controller'
52tags: ['controller.service_arguments']
53
54_instanceof:
55App\Cron\DailyCronServiceInterface:
56tags:
57- { name: cron-daily }
58App\Cron\HourlyCronServiceInterface:
59tags:
60- { name: cron-hourly }
61Xelbot\Telegram\Command\TelegramCommandInterface:
62tags:
63- { name: telegram-command }
64
65# add more service definitions when explicit configuration is needed
66# please note that last definitions always *replace* previous ones
67
68App\Command\DropboxAuthCommand:
69arguments:
70$dropboxKey: '%dropbox_key%'
71$dropboxSecret: '%dropbox_secret%'
72
73App\EventListener\Doctrine\IgnoreTablesListener:
74tags:
75- { name: doctrine.event_listener, event: postGenerateSchema }
76
77App\EventListener\JsonBodyListener:
78calls:
79- [ setTelegramLogger, [ "@monolog.logger.telegram" ] ]
80tags:
81- { name: kernel.event_listener, event: kernel.request, priority: 10 }
82
83App\EventListener\Doctrine\ArticleUpdatedAtListener:
84tags:
85- { name: doctrine.event_listener, event: preUpdate }
86
87App\EventListener\Doctrine\MediaFilePictureListener:
88tags:
89- { name: doctrine.event_listener, event: preUpdate }
90
91App\EventListener\Comment\CommentatorCheckListener:
92tags:
93- { name: kernel.event_listener, event: App\Event\CommentEvent }
94
95App\EventListener\Comment\CommentGeolocationListener:
96tags:
97- { name: kernel.event_listener, event: App\Event\CommentEvent }
98
99App\EventListener\Comment\NewCommentEmailListener:
100tags:
101- { name: kernel.event_listener, event: App\Event\CommentEvent }
102
103App\EventListener\Comment\ReplyCommentListener:
104tags:
105- { name: kernel.event_listener, event: App\Event\CommentEvent }
106
107App\EventListener\PygmentsCodeUpdateListener:
108tags:
109- { name: kernel.event_listener, event: App\Event\PygmentCodeEvent }
110
111App\EventListener\User\UserCommentsListener:
112tags:
113- { name: kernel.event_listener, event: App\Event\UserEvent }
114
115App\EventListener\User\AvatarListener:
116tags:
117- { name: kernel.event_listener, event: App\Event\UserExtraEvent }
118
119App\EventListener\User\LoginListener:
120tags:
121- { name: kernel.event_listener, event: security.interactive_login, method: onLogin }
122
123App\Controller\DefaultController:
124arguments:
125$kernelEnv: '%kernel.environment%'
126
127App\Controller\GitRepoController:
128arguments:
129$secretToken: '%gitrepo_webhook_token%'
130
131App\Controller\TelegramController:
132arguments:
133$secretToken: '%telegram_webhook_token%'
134
135App\Service\BackUp\FlysystemFactory:
136arguments:
137$spaceLogin: '%space_login%'
138$spacePassword: '%space_password%'
139
140App\Service\IpInfo\IpInfoDbClient:
141arguments:
142$key: "%ipinfo_db_key%"
143
144App\Service\IpInfo\IpInfoClientInterface: '@App\Service\IpInfo\IpInfoDbClient'
145
146App\Service\Mailer:
147arguments:
148$emailFrom: "%mailer_user%"
149
150App\Service\SystemParametersStorage:
151arguments:
152$secret: '%env(APP_SECRET)%'
153
154App\Cron\Daily\DatabaseBackup:
155arguments:
156- '%env(DB_HOST)%'
157- '%env(DB_NAME)%'
158- '%env(DB_USER)%'
159- '%env(DB_PASSWORD)%'
160
161mtt_blog.text_processor:
162alias: App\Service\TextProcessor
163public: true
164
165App\Cron\Hourly\TelegramUpdates:
166arguments:
167$adminId: "%telegram_admin_id%"
168
169mtt_blog.telegram_bot:
170class: Xelbot\Telegram\Robot
171arguments:
172- "%telegram_token%"
173- "%telegram_bot%"
174- "%telegram_admin_id%"
175calls:
176- [ setLogger, [ "@monolog.logger.telegram" ]]
177- [ setUpdatesManager, [ '@App\Telegram\UpdatesManager' ]]
178
179League\Flysystem\FilesystemOperator:
180factory: [ '@App\Service\BackUp\FlysystemFactory', createFlysystem ]
181arguments: [ 'mail_space' ]
182
183Xelbot\Telegram\Robot: '@mtt_blog.telegram_bot'
184