# 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.html#use-parameters-for-application-configuration parameters: encryption_key: '%env(APP_ENCRYPTION_KEY)%' mercure_public_hub_url: '%env(MERCURE_PUBLIC_URL)%' nostr_default_relay: '%env(default::NOSTR_DEFAULT_RELAY)%' elasticsearch_enabled: '%env(ELASTICSEARCH_ENABLED)%' 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: $nostrDefaultRelay: '%nostr_default_relay%' $environment: '%kernel.environment%' # 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' # add more service definitions when explicit configuration is needed # please note that last definitions always *replace* previous ones Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler: arguments: - '%env(DATABASE_URL)%' # FOS\ElasticaBundle\Finder\FinderInterface: alias: fos_elastica.finder.articles # Redis Symfony\Component\Cache\Adapter\RedisAdapter: arguments: - '@Redis' Symfony\Component\HttpFoundation\Session\Storage\Handler\RedisSessionHandler: arguments: - '@Redis' # you can optionally pass an array of options. The only options are 'prefix' and 'ttl', # which define the prefix to use for the keys to avoid collision on the Redis server # and the expiration time for any given entry (in seconds), defaults are 'sf_s' and null: # - { 'prefix': 'my_prefix', 'ttl': 600 } Redis: # you can also use \RedisArray, \RedisCluster, \Relay\Relay or \Predis\Client classes class: Redis lazy: true calls: - connect: - '%env(REDIS_HOST)%' - auth: - '%env(REDIS_PASSWORD)%' App\Provider\ArticleProvider: tags: - { name: fos_elastica.pager_provider, index: articles, type: article } App\Provider\UserProvider: tags: - { name: fos_elastica.pager_provider, index: users, type: user } App\EventListener\PopulateListener: tags: - { name: kernel.event_listener, event: 'FOS\\ElasticaBundle\\Event\\PostIndexPopulateEvent', method: 'postIndexPopulate' } App\Command\IndexArticlesCommand: arguments: $itemPersister: '@fos_elastica.object_persister.articles' App\EventListener\UserElasticsearchIndexListener: arguments: $userPersister: '@fos_elastica.object_persister.users' $elasticsearchEnabled: '%elasticsearch_enabled%' App\Command\NostrEventFromYamlDefinitionCommand: arguments: $itemPersister: '@fos_elastica.object_persister.articles' App\Util\NostrPhp\TweakedRequest: ~ swentel\nostr\Request\Request: '@App\Util\NostrPhp\TweakedRequest' # Search services - Elasticsearch implementation App\Service\Search\ElasticsearchArticleSearch: arguments: $finder: '@fos_elastica.finder.articles' $enabled: '%elasticsearch_enabled%' # Search services - Database implementation App\Service\Search\DatabaseArticleSearch: ~ # Search service factory App\Service\Search\ArticleSearchFactory: arguments: $elasticsearchEnabled: '%elasticsearch_enabled%' # Main search service - uses Elasticsearch if enabled, otherwise database App\Service\Search\ArticleSearchInterface: factory: ['@App\Service\Search\ArticleSearchFactory', 'create'] # User Search services - Elasticsearch implementation App\Service\Search\ElasticsearchUserSearch: arguments: $finder: '@fos_elastica.finder.users' $enabled: '%elasticsearch_enabled%' # User Search services - Database implementation App\Service\Search\DatabaseUserSearch: ~ # User Search service factory App\Service\Search\UserSearchFactory: arguments: $elasticsearchEnabled: '%elasticsearch_enabled%' # Main user search service - uses Elasticsearch if enabled, otherwise database App\Service\Search\UserSearchInterface: factory: ['@App\Service\Search\UserSearchFactory', 'create'] # UnfoldBundle services App\UnfoldBundle\Config\SiteConfigLoader: arguments: $unfoldCache: '@unfold.cache' App\UnfoldBundle\Content\ContentProvider: arguments: $unfoldCache: '@unfold.cache' App\UnfoldBundle\Http\HostResolver: ~ App\UnfoldBundle\Http\RouteMatcher: ~ App\UnfoldBundle\Theme\ContextBuilder: ~ App\UnfoldBundle\Theme\HandlebarsRenderer: arguments: $projectDir: '%kernel.project_dir%' App\UnfoldBundle\Controller\SiteController: tags: ['controller.service_arguments'] App\UnfoldBundle\Controller\ThemeAssetController: arguments: $projectDir: '%kernel.project_dir%' tags: ['controller.service_arguments'] App\UnfoldBundle\Controller\UnfoldAdminController: tags: ['controller.service_arguments']