Files
wallabag/config/services.yaml
Jeremy Benoist 6b5a518ce2 Move to Symfony Flex
The structure changed completely.
Bundles are gone. Everything is flatten in the folder `src`.
I separated import & api controllers to avoid _pollution_ in the main controller folder.
2023-07-28 09:35:07 +02:00

381 lines
14 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
# parameters:
# 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.
# # 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/'
# - '../src/Entity/'
# - '../src/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']
# # add more service definitions when explicit configuration is needed
# # please note that last definitions always *replace* previous ones
imports:
- { resource: services_rabbit.yaml }
- { resource: services_redis.yaml }
parameters:
# Allows to use the live reload feature for changes in assets
use_webpack_dev_server: false
craue_config.cache_adapter.class: Craue\ConfigBundle\CacheAdapter\SymfonyCacheComponentAdapter
lexik_form_filter.get_filter.doctrine_orm.class: App\Event\Subscriber\CustomDoctrineORMSubscriber
addons_url:
firefox: https://addons.mozilla.org/firefox/addon/wallabagger/
chrome: https://chrome.google.com/webstore/detail/wallabagger/gbmgphmejlcoihgedabhgjdkcahacjlj
opera: https://addons.opera.com/en/extensions/details/wallabagger/?display=en
f_droid: https://f-droid.org/app/fr.gaulupeau.apps.InThePoche
google_play: https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche
ios: https://itunes.apple.com/app/wallabag-2/id1170800946?mt=8
windows: https://www.microsoft.com/store/apps/wallabag/9nblggh11646
twofactor_auth: '%env(TWOFACTOR_AUTH)%'
domain_name: '%env(DOMAIN_NAME)%'
database_table_prefix: '%env(DATABASE_TABLE_PREFIX)%'
fosuser_registration: '%env(FOSUSER_REGISTRATION)%'
services:
_defaults:
autowire: true
autoconfigure: true
public: true
bind:
$rootDir: '%kernel.root_dir%'
$debug: '%kernel.debug%'
$defaultLocale: '%kernel.default_locale%'
$wallabagUrl: '%env(DOMAIN_NAME)%'
$tablePrefix: "%env(DATABASE_TABLE_PREFIX)%"
$encryptionKeyPath: "%wallabag.site_credentials.encryption_key_path%"
$fetchingErrorMessageTitle: "%wallabag.fetching_error_message_title%"
$fetchingErrorMessage: '%wallabag.fetching_error_message%'
$languages: '%wallabag.languages%'
$lifeTime: '%wallabag.cache_lifetime%'
$cookieFile: "%kernel.cache_dir%/cookiejar.json"
$logoPath: 'public/img/appicon/apple-touch-icon-152.png'
$registrationEnabled: '%env(bool:FOSUSER_REGISTRATION)%'
$restrictedAccess: '@=service(''craue_config'').get(''restricted_access'')'
$senderEmail: "%scheb_two_factor.email.sender_email%"
$senderName: "%scheb_two_factor.email.sender_name%"
$storeArticleHeaders: '@=service(''craue_config'').get(''store_article_headers'')'
$supportUrl: '@=service(''craue_config'').get(''wallabag_support_url'')'
App\:
resource: '../src/'
exclude:
- '../src/DependencyInjection/'
- '../src/Entity/'
- '../src/DataFixtures/'
- '../src/Kernel.php'
- '../src/Consumer/'
- '../src/Redis/'
- '../src/Event/*Event.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']
# inject alias service into controllers
App\Controller\Import\ChromeController:
arguments:
$rabbitMqProducer: '@old_sound_rabbit_mq.import_chrome_producer'
$redisProducer: '@wallabag_import.producer.redis.chrome'
App\Controller\Import\DeliciousController:
arguments:
$rabbitMqProducer: '@old_sound_rabbit_mq.import_delicious_producer'
$redisProducer: '@wallabag_import.producer.redis.delicious'
App\Controller\Import\ElcuratorController:
arguments:
$rabbitMqProducer: '@old_sound_rabbit_mq.import_elcurator_producer'
$redisProducer: '@wallabag_import.producer.redis.elcurator'
App\Controller\Import\FirefoxController:
arguments:
$rabbitMqProducer: '@old_sound_rabbit_mq.import_firefox_producer'
$redisProducer: '@wallabag_import.producer.redis.firefox'
App\Controller\Import\InstapaperController:
arguments:
$rabbitMqProducer: '@old_sound_rabbit_mq.import_instapaper_producer'
$redisProducer: '@wallabag_import.producer.redis.instapaper'
App\Controller\Import\PinboardController:
arguments:
$rabbitMqProducer: '@old_sound_rabbit_mq.import_pinboard_producer'
$redisProducer: '@wallabag_import.producer.redis.pinboard'
App\Controller\Import\PocketController:
arguments:
$rabbitMqProducer: '@old_sound_rabbit_mq.import_pocket_producer'
$redisProducer: '@wallabag_import.producer.redis.pocket'
App\Controller\Import\ReadabilityController:
arguments:
$rabbitMqProducer: '@old_sound_rabbit_mq.import_readability_producer'
$redisProducer: '@wallabag_import.producer.redis.readability'
App\Controller\Import\WallabagV1Controller:
arguments:
$rabbitMqProducer: '@old_sound_rabbit_mq.import_wallabag_v1_producer'
$redisProducer: '@wallabag_import.producer.redis.wallabag_v1'
App\Controller\Import\WallabagV2Controller:
arguments:
$rabbitMqProducer: '@old_sound_rabbit_mq.import_wallabag_v2_producer'
$redisProducer: '@wallabag_import.producer.redis.wallabag_v2'
Doctrine\DBAL\Connection:
alias: doctrine.dbal.default_connection
Doctrine\ORM\EntityManagerInterface:
alias: doctrine.orm.entity_manager
Doctrine\Persistence\ManagerRegistry:
alias: doctrine
Craue\ConfigBundle\Util\Config:
alias: craue_config
JMS\Serializer\SerializerInterface:
alias: jms_serializer
Lexik\Bundle\FormFilterBundle\Filter\FilterBuilderUpdaterInterface:
alias: lexik_form_filter.query_builder_updater
Scheb\TwoFactorBundle\Security\TwoFactor\Provider\Google\GoogleAuthenticatorInterface:
alias: scheb_two_factor.security.google_authenticator
Symfony\Component\HttpFoundation\Session\SessionInterface:
alias: session
Symfony\Component\EventDispatcher\EventDispatcherInterface:
alias: event_dispatcher
Symfony\Component\Form\FormFactoryInterface:
alias: form.factory
Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface:
alias: security.token_storage
Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface:
alias: security.authorization_checker
Symfony\Component\Translation\TranslatorInterface:
alias: translator
Symfony\Component\Validator\Validator\ValidatorInterface:
alias: validator
FOS\UserBundle\Model\UserManagerInterface:
alias: fos_user.user_manager
MatomoTwigExtension\MatomoTwigExtension:
public: false
App\Event\Listener\UserLocaleListener:
tags:
- { name: kernel.event_listener, event: security.interactive_login, method: onInteractiveLogin }
craue_config_cache_provider:
class: Symfony\Component\Cache\Adapter\FilesystemAdapter
public: false
arguments:
$namespace: 'craue_config'
$defaultLifetime: 0
$directory: '%kernel.cache_dir%'
App\ParamConverter\UsernameFeedTokenConverter:
tags:
- { name: request.param_converter, converter: username_feed_token_converter }
App\Event\Subscriber\TablePrefixSubscriber:
tags:
- { name: doctrine.event_subscriber }
Graby\Graby:
arguments:
$config:
error_message: '%wallabag.fetching_error_message%'
error_message_title: '%wallabag.fetching_error_message_title%'
calls:
- [ setLogger, [ "@logger" ] ]
tags:
- { name: monolog.logger, channel: graby }
Graby\SiteConfig\ConfigBuilder:
arguments:
$config: {}
wallabag_core.http_client:
alias: 'httplug.client.wallabag_core'
App\GuzzleSiteAuthenticator\GrabySiteConfigBuilder:
tags:
- { name: monolog.logger, channel: graby }
# service alias override
bd_guzzle_site_authenticator.site_config_builder:
alias: App\GuzzleSiteAuthenticator\GrabySiteConfigBuilder
GuzzleHttp\Cookie\CookieJar:
alias: 'App\Helper\FileCookieJar'
App\Helper\HttpClientFactory:
calls:
- ["addSubscriber", ["@bd_guzzle_site_authenticator.authenticator_subscriber"]]
RulerZ\RulerZ:
alias: rulerz
App\Operator\PHP\Matches:
tags:
- { name: rulerz.operator, target: native, operator: matches }
App\Operator\Doctrine\Matches:
tags:
- { name: rulerz.operator, target: doctrine, operator: matches, inline: true }
App\Operator\PHP\NotMatches:
tags:
- { name: rulerz.operator, target: native, operator: notmatches }
App\Operator\Doctrine\NotMatches:
tags:
- { name: rulerz.operator, target: doctrine, operator: notmatches, inline: true }
App\Operator\PHP\PatternMatches:
tags:
- { name: rulerz.operator, target: native, operator: "~" }
Predis\Client:
arguments:
$parameters:
scheme: '%env(REDIS_SCHEME)%'
host: '%env(REDIS_HOST)%'
port: '%env(REDIS_PORT)%'
path: '%env(REDIS_PATH)%'
password: '%env(REDIS_PASSWORD)%'
App\Event\Subscriber\SQLiteCascadeDeleteSubscriber:
tags:
- { name: doctrine.event_subscriber }
App\Event\Subscriber\DownloadImagesSubscriber:
arguments:
$enabled: '@=service(''craue_config'').get(''download_images_enabled'')'
App\Helper\DownloadImages:
arguments:
$baseFolder: "%kernel.project_dir%/public/assets/images"
App\Command\ExportCommand:
arguments:
$projectDir: '%kernel.project_dir%'
App\Command\InstallCommand:
arguments:
$defaultSettings: '%wallabag.default_internal_settings%'
$defaultIgnoreOriginInstanceRules: '%wallabag.default_ignore_origin_instance_rules%'
wallabag_core.entry.download_images.client:
alias: 'httplug.client.wallabag_core.entry.download_images'
App\Mailer\UserMailer:
arguments:
$parameters:
template:
confirmation: '%fos_user.registration.confirmation.template%'
resetting: '%fos_user.resetting.email.template%'
from_email:
confirmation: '%fos_user.registration.confirmation.from_email%'
resetting: '%fos_user.resetting.email.from_email%'
App\EventListener\CreateConfigListener:
arguments:
$itemsOnPage: "%wallabag.items_on_page%"
$feedLimit: "%wallabag.feed_limit%"
$language: "%wallabag.language%"
$readingSpeed: "%wallabag.reading_speed%"
$actionMarkAsRead: "%wallabag.action_mark_as_read%"
$listMode: "%wallabag.list_mode%"
$displayThumbnails: "%wallabag.display_thumbnails%"
App\EventListener\AuthenticationFailureListener:
tags:
- { name: kernel.event_listener, event: security.authentication.failure, method: onAuthenticationFailure }
wallabag_import.pocket.client:
alias: 'httplug.client.wallabag_import.pocket.client'
App\Import\PocketImport:
calls:
- [ setClient, [ "@wallabag_import.pocket.client" ] ]
tags:
- { name: wallabag_import.import, alias: pocket }
App\Import\WallabagV1Import:
tags:
- { name: wallabag_import.import, alias: wallabag_v1 }
App\Import\WallabagV2Import:
tags:
- { name: wallabag_import.import, alias: wallabag_v2 }
App\Import\ElcuratorImport:
tags:
- { name: wallabag_import.import, alias: elcurator }
App\Import\ReadabilityImport:
tags:
- { name: wallabag_import.import, alias: readability }
App\Import\InstapaperImport:
tags:
- { name: wallabag_import.import, alias: instapaper }
App\Import\PinboardImport:
tags:
- { name: wallabag_import.import, alias: pinboard }
App\Import\DeliciousImport:
tags:
- { name: wallabag_import.import, alias: delicious }
App\Import\FirefoxImport:
tags:
- { name: wallabag_import.import, alias: firefox }
App\Import\ChromeImport:
tags:
- { name: wallabag_import.import, alias: chrome }
# to factorize the proximity and bypass translation for prev & next
pagerfanta.view.default_wallabag:
class: Pagerfanta\View\OptionableView
arguments:
- '@pagerfanta.view.twitter_bootstrap'
- { proximity: 1, prev_message: "<", next_message: ">" }
public: false
tags:
- { name: pagerfanta.view, alias: default_wallabag }