# 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
# config/services.yaml

parameters:
    container.dumper.inline_factories: true
    quotations_directory: '%kernel.project_dir%/public/uploads'

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:
            $cacheHelperLogger: '@monolog.logger.cache_helper'
            $isDebug: '%kernel.debug%'
            $uploadsPath: '%uploadsPath%'
            $assetsManager: '@assets._package_vendor'

    # 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}'

    Symfony\Component\HttpKernel\Profiler\Profiler: '@profiler'

    # 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']

    App\Routing\ExtraLoader:
        tags: [routing.loader]

    App\Controller\ExceptionController:
        public: true
        arguments:
            $twig: '@twig'
            $debug: '%kernel.debug%'
            $entityManager: '@doctrine.orm.entity_manager'
            $requestStack: '@request_stack'
            $kernel: '@kernel'

    # add more service definitions when explicit configuration is needed
    # please note that last definitions always *replace* previous ones