mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-06-20 17:15:51 +02:00
212 lines
9.1 KiB
YAML
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)%'
|