Part-DB.Part-DB-server/config/services.yaml
2020-07-04 23:38:18 +02:00

212 lines
9.1 KiB
YAML

# This file is the entry point to configure your own services.
# Files in the packages/ subdirectory configure your dependencies.
# 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
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.
bind:
bool $demo_mode: '%partdb.demo_mode%'
bool $gpdr_compliance : '%partdb.gpdr_compliance%'
bool $kernel_debug: '%kernel.debug%'
string $kernel_cache_dir: '%kernel.cache_dir%'
string $partdb_title: '%partdb.title%'
string $default_currency: '%partdb.default_currency%'
_instanceof:
App\Services\LabelSystem\PlaceholderProviders\PlaceholderProviderInterface:
tags: ['app.label_placeholder_provider']
# 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/{DependencyInjection,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']
####################################################################################################################
# Alias definitions
####################################################################################################################
Swap\Swap:
alias: 'florianv_swap.swap'
Doctrine\Migrations\DependencyFactory:
alias: 'doctrine.migrations.dependency_factory'
####################################################################################################################
# Email
####################################################################################################################
App\EventSubscriber\SetMailFromSubscriber:
tags: ['kernel.event_subscriber']
arguments:
$email: '%partdb.mail.sender_email%'
$name: '%partdb.mail.sender_name%'
####################################################################################################################
# Log System
####################################################################################################################
App\Services\LogSystem\EventLogger:
arguments:
# By default only log events which has minimum info level (debug levels are not logged)
# 7 is lowest level (debug), 0 highest (emergency
$minimum_log_level: 6
# Event classes specified here are not saved to DB
$blacklist: []
# Only the event classes specified here are saved to DB (set to []) to log all events
$whitelist: []
App\EventSubscriber\LogSystem\EventLoggerSubscriber:
arguments:
$save_changed_fields: '%env(bool:HISTORY_SAVE_CHANGED_FIELDS)%'
$save_changed_data: '%env(bool:HISTORY_SAVE_CHANGED_DATA)%'
$save_removed_data: '%env(bool:HISTORY_SAVE_REMOVED_DATA)%'
tags:
- { name: 'doctrine.event_subscriber' }
App\EventSubscriber\LogSystem\LogDBMigrationSubscriber:
tags:
- { name: 'doctrine.event_subscriber' }
App\Form\AttachmentFormType:
arguments:
$allow_attachments_downloads: '%partdb.attachments.allow_downloads%'
App\Services\Attachments\AttachmentSubmitHandler:
arguments:
$allow_attachments_downloads: '%partdb.attachments.allow_downloads%'
$mimeTypes: '@mime_types'
App\EventSubscriber\LogSystem\LogoutLoggerListener:
tags:
- name: 'kernel.event_listener'
event: 'Symfony\Component\Security\Http\Event\LogoutEvent'
dispatcher: security.event_dispatcher.main
####################################################################################################################
# Attachment system
####################################################################################################################
Liip\ImagineBundle\Service\FilterService:
alias: 'liip_imagine.service.filter'
App\EntityListeners\AttachmentDeleteListener:
tags:
- name: doctrine.orm.entity_listener
App\Services\Attachments\AttachmentPathResolver:
arguments:
$project_dir: '%kernel.project_dir%'
$media_path: '%partdb.attachments.dir.media%'
$secure_path: '%partdb.attachments.dir.secure%'
$footprints_path: 'public/img/footprints'
$models_path: null
App\Services\Attachments\FileTypeFilterTools:
arguments:
$mimeTypes: '@mime_types'
####################################################################################################################
# Security
####################################################################################################################
App\Security\EntityListeners\ElementPermissionListener:
tags:
- { name: "doctrine.orm.entity_listener" }
####################################################################################################################
# Cache
####################################################################################################################
App\EntityListeners\TreeCacheInvalidationListener:
tags:
- { name: doctrine.orm.entity_listener }
####################################################################################################################
# Price system
####################################################################################################################
App\Command\UpdateExchangeRatesCommand:
arguments:
$base_current: '%partdb.default_currency%'
App\Form\Type\CurrencyEntityType:
arguments:
$base_currency: '%partdb.default_currency%'
App\Services\PricedetailHelper:
arguments:
$base_currency: '%partdb.default_currency%'
App\Services\MoneyFormatter:
arguments:
$base_currency: '%partdb.default_currency%'
App\Services\ExchangeRateUpdater:
arguments:
$base_currency: '%partdb.default_currency%'
###################################################################################################################
# User system
####################################################################################################################
App\Form\UserSettingsType:
arguments:
$demo_mode: '%partdb.demo_mode%'
App\EventSubscriber\UserSystem\SetUserTimezoneSubscriber:
arguments:
$timezone: '%partdb.timezone%'
App\Controller\SecurityController:
arguments:
$allow_email_pw_reset: '%partdb.users.email_pw_reset%'
App\Services\TFA\BackupCodeGenerator:
arguments:
$code_length: 8
$code_count: 15
App\Services\TranslationExtractor\PermissionExtractor:
tags:
- { name: 'translation.extractor', alias: 'permissionExtractor'}
####################################################################################################################
# Label system
####################################################################################################################
App\Services\LabelSystem\LabelTextReplacer:
arguments:
$providers: !tagged_iterator 'app.label_placeholder_provider'
# PartLotProvider must be invoked before all other providers, so it can override %%NAME%% placeholder
App\Services\LabelSystem\PlaceholderProviders\PartLotProvider:
tags:
- { name: 'app.label_placeholder_provider', priority: 10}
####################################################################################################################
# Symfony overrides
####################################################################################################################
# Dont use JSONSerializable Interface,
serializer.normalizer.json_serializable:
class: Symfony\Component\Serializer\Normalizer\JsonSerializableNormalizer
tags:
- {name: serializer.normalizer, priority: -9000}
####################################################################################################################
# Miscellaneous
####################################################################################################################
App\Controller\RedirectController:
arguments:
$default_locale: '%partdb.locale%'
$enforce_index_php: '%env(bool:NO_URL_REWRITE_AVAILABLE)%'