Symfony: Organize services, use classes instead of aliases

pull/3959/head
Julio 4 years ago
parent ea78691414
commit cfd5371c7e
  1. 30
      config/services.yaml
  2. 2
      src/CoreBundle/DependencyInjection/ChamiloCoreExtension.php
  3. 131
      src/CoreBundle/Resources/config/listeners.yml
  4. 1
      src/CoreBundle/Resources/config/repositories.yml
  5. 173
      src/CoreBundle/Resources/config/services.yml
  6. 12
      src/CourseBundle/Resources/config/services.yml

@ -51,44 +51,20 @@ services:
# # implications! # # implications!
# decoration_priority: -20 # decoration_priority: -20
Chamilo\CoreBundle\Component\Utils\AssetDirectoryNamer: ~
Chamilo\CoreBundle\Component\Utils\NameConvention: ~
Chamilo\CoreBundle\Component\Utils\Glide:
arguments:
- {source: '@oneup_flysystem.resource_filesystem', cache: '@oneup_flysystem.resource_cache_filesystem'}
- '%glide_media_filters%'
Chamilo\CoreBundle\Component\Utils\GlideAsset:
arguments:
- {source: '@oneup_flysystem.asset_filesystem', cache: '@oneup_flysystem.asset_cache_filesystem'}
- '%glide_media_filters%'
# makes classes in src/ available to be used as services # makes classes in src/ available to be used as services
# this creates a service per class whose id is the fully-qualified class name # this creates a service per class whose id is the fully-qualified class name
Vich\UploaderBundle\Naming\SubdirDirectoryNamer: Vich\UploaderBundle\Naming\SubdirDirectoryNamer:
public: true public: true
Chamilo\CoreBundle\Controller\ResourceController:
arguments:
- '@Chamilo\CoreBundle\Repository\ResourceFactory'
Symfony\Component\Mailer\Mailer: Symfony\Component\Mailer\Mailer:
public: true public: true
Doctrine\ORM\EntityManager: "@doctrine.orm.default_entity_manager" Doctrine\ORM\EntityManager: "@doctrine.orm.default_entity_manager"
chamilo_core.hook_factory: # Locale listener
class: 'Chamilo\CoreBundle\Hook\HookFactory' Chamilo\CoreBundle\EventSubscriber\LocaleSubscriber:
arguments: ['%kernel.default_locale%', '@chamilo.settings.manager', '@parameter_bag']
Chamilo\CoreBundle\EventListener\HTTPExceptionListener:
tags:
- {name: kernel.event_listener, event: kernel.exception}
Chamilo\CoreBundle\EventListener\ExceptionListener:
arguments: ['@twig']
tags:
- {name: kernel.event_listener, event: kernel.exception}
cocur_slugify: cocur_slugify:
lowercase: true lowercase: true

@ -21,11 +21,11 @@ class ChamiloCoreExtension extends Extension
); );
$loader->load('services.yml'); $loader->load('services.yml');
//$loader->load('admin.yml');
$loader->load('tools.yml'); $loader->load('tools.yml');
$loader->load('settings.yml'); $loader->load('settings.yml');
$loader->load('repositories.yml'); $loader->load('repositories.yml');
$loader->load('tool_settings.yml'); $loader->load('tool_settings.yml');
$loader->load('listeners.yml');
$loader = new Loader\XmlFileLoader( $loader = new Loader\XmlFileLoader(
$container, $container,

@ -0,0 +1,131 @@
# Settings parameters that will be used in the 'services' section
services:
_defaults:
autowire: true
public: true
autoconfigure: true
# Event listeners
Chamilo\CoreBundle\EventListener\AssetListener:
arguments:
- '@Chamilo\CoreBundle\Repository\AssetRepository'
tags:
- {name: kernel.event_listener, event: vich_uploader.post_remove}
Chamilo\CoreBundle\EventListener\CourseListener:
calls:
- [setContainer, ['@service_container']]
tags:
- {name: kernel.event_listener, event: kernel.request, method: onKernelRequest, priority: 6}
- {name: kernel.event_listener, event: kernel.response, method: onKernelResponse}
- {name: kernel.event_listener, event: kernel.controller, method: onKernelController}
# Sets the user access in a course listener
Chamilo\CoreBundle\EventListener\CourseAccessListener:
arguments:
- '@doctrine.orm.entity_manager'
calls:
- [setRequest, ['@request_stack']]
tags:
- {name: kernel.event_listener, event: chamilo_course.course.access, method: onCourseAccessEvent}
# Sets the user access in a course session listener
Chamilo\CoreBundle\EventListener\SessionAccessListener:
arguments:
- '@doctrine.orm.entity_manager'
calls:
- [setRequest, ['@request_stack']]
tags:
- {name: kernel.event_listener, event: chamilo_course.course.session, method: onSessionAccessEvent}
# Setting user
Chamilo\CoreBundle\EventListener\LegacyListener:
calls:
- [setContainer, ['@service_container']]
tags:
- {name: kernel.event_listener, event: kernel.request, method: onKernelRequest, priority: 7}
- {name: kernel.event_listener, event: kernel.response, method: onKernelResponse}
- {name: kernel.event_listener, event: kernel.controller, method: onKernelController}
# User locale listener
# Chamilo\CoreBundle\EventListener\UserLocaleListener:
# tags:
# - {name: kernel.event_listener, event: security.interactive_login, method: onInteractiveLogin, priority: 15}
# Settings listener
Chamilo\CoreBundle\EventListener\SettingListener:
arguments: ['@service_container']
tags:
- {name: kernel.event_listener, event: sylius.settings.pre_save, method: onSettingPreSave}
Chamilo\CoreBundle\EventListener\TwigListener:
tags:
- {name: kernel.event_listener}
# Course upload listener
Chamilo\CoreBundle\EventListener\ResourceUploadListener:
arguments: ['@router']
tags:
- {name: kernel.event_listener, event: oneup_uploader.post_persist, method: onUpload}
# Auth listeners
Chamilo\CoreBundle\EventListener\LoginSuccessHandler:
arguments: ['@router', '@security.authorization_checker', '@chamilo.settings.manager']
tags:
- {name: kernel.event_listener, event: security.interactive_login, method: onSecurityInteractiveLogin}
Chamilo\CoreBundle\EventListener\LogoutListener:
tags:
- name: kernel.event_listener
event: Symfony\Component\Security\Http\Event\LogoutEvent
dispatcher: security.event_dispatcher.main
priority: 20
Chamilo\CoreBundle\EventListener\HTTPExceptionListener:
tags:
- {name: kernel.event_listener, event: kernel.exception}
Chamilo\CoreBundle\EventListener\ExceptionListener:
arguments: ['@twig']
tags:
- {name: kernel.event_listener, event: kernel.exception}
# Entity listeners
Chamilo\CoreBundle\Entity\Listener\ResourceListener:
tags:
- {name: doctrine.orm.entity_listener, entity_manager: default, lazy: true}
Chamilo\CoreBundle\Entity\Listener\ResourceNodeListener:
tags:
- {name: doctrine.orm.entity_listener, entity_manager: default, lazy: true}
Chamilo\CoreBundle\Entity\Listener\SessionListener:
tags:
- {name: doctrine.orm.entity_listener, entity_manager: default, lazy: true}
# When the Course entity is created/updated
Chamilo\CoreBundle\Entity\Listener\CourseListener:
arguments: ['@Chamilo\CoreBundle\ToolChain', '@chamilo.settings.manager']
tags:
- {name: doctrine.orm.entity_listener, entity_manager: default, lazy: true}
# When the User entity is created/updated -
Chamilo\CoreBundle\Entity\Listener\UserListener:
tags:
- {name: doctrine.orm.entity_listener, entity_manager: default, lazy: true}
Chamilo\CoreBundle\Entity\Listener\UserRelUserListener:
tags:
- {name: doctrine.orm.entity_listener, entity_manager: default, lazy: true}
Chamilo\CoreBundle\Entity\Listener\MessageListener:
tags:
- {name: doctrine.orm.entity_listener, entity_manager: default, lazy: true}
Chamilo\CoreBundle\Entity\Listener\SkillRelUserListener:
arguments:
- '@chamilo.settings.manager'
- '@router'
- '@translator'
tags:
- {name: doctrine.orm.entity_listener, entity_manager: default, lazy: true}

@ -5,6 +5,7 @@ services:
autoconfigure: true autoconfigure: true
Vich\UploaderBundle\Storage\FlysystemStorage: ~ Vich\UploaderBundle\Storage\FlysystemStorage: ~
Chamilo\CoreBundle\Repository\ResourceNodeRepository: ~ Chamilo\CoreBundle\Repository\ResourceNodeRepository: ~
# Classic entity repositories # Classic entity repositories

@ -19,50 +19,40 @@ services:
resource: '../../Controller' resource: '../../Controller'
tags: ['controller.service_arguments'] tags: ['controller.service_arguments']
Chamilo\CoreBundle\Hook\HookFactory: ~
Chamilo\CoreBundle\Controller\ResourceController:
arguments:
- '@Chamilo\CoreBundle\Repository\ResourceFactory'
Chamilo\CoreBundle\DataPersister\MessageDataPersister: Chamilo\CoreBundle\DataPersister\MessageDataPersister:
arguments: ['@api_platform.doctrine.orm.data_persister'] arguments: ['@api_platform.doctrine.orm.data_persister']
Chamilo\CoreBundle\DataPersister\UserRelUserDataPersister: Chamilo\CoreBundle\DataPersister\UserRelUserDataPersister:
arguments: ['@api_platform.doctrine.orm.data_persister'] arguments: ['@api_platform.doctrine.orm.data_persister']
# twig.extension.date:
# class: Twig_Extensions_Extension_Date
# tags:
# - { name: twig.extension }
# User image naming
# chamilo_core.naming.user_image:
# class: Chamilo\CoreBundle\Naming\UserImage
# Form types # Form types
# Custom yes/no form type, use in the platform settings # Custom yes/no form type, use in the platform settings
chamilo_core.form.type.yes_no: Chamilo\CoreBundle\Form\Type\YesNoType:
class: Chamilo\CoreBundle\Form\Type\YesNoType
tags: tags:
- {name: form.type, alias: yes_no} - {name: form.type, alias: yes_no}
# # Extra field attribute services
# chamilo_user.form.type.attribute_value_type:
# class: Chamilo\CoreBundle\Form\Type\AttributeValueType
# arguments: [Chamilo\CoreBundle\Entity\ExtraFieldValues, ['registration'], 'user', @sylius.repository.subject_name_attribute_value]
# tags:
# - {name: form.type, alias: chamilo_user_extra_field_value}
##
#
# chamilo_user.form.type.attribute_type:
# class: Chamilo\CoreBundle\Form\Type\AttributeType
# arguments: [Chamilo\CoreBundle\Entity\ExtraField, ['registration'], 'user']
## arguments: [%sylius.attribute.attribute_types%]
# tags:
# - {name: form.type, alias: chamilo_user_attribute_type}
#
# chamilo_user.form.type.attribute_choice_type:
# class: Chamilo\CoreBundle\Form\Type\AttributeTypeChoiceType
# arguments: [%sylius.attribute.attribute_types%]
# tags:
# - {name: form.type, alias: chamilo_user_attribute_choice}
# html editor # html editor
chamilo_core.html_editor: Chamilo\CoreBundle\Component\Editor\CkEditor\CkEditor:
class: Chamilo\CoreBundle\Component\Editor\CkEditor\CkEditor
arguments: ['@translator', '@router'] arguments: ['@translator', '@router']
Chamilo\CoreBundle\Component\Utils\AssetDirectoryNamer: ~
Chamilo\CoreBundle\Component\Utils\NameConvention: ~
Chamilo\CoreBundle\Component\Utils\Glide:
arguments:
- {source: '@oneup_flysystem.resource_filesystem', cache: '@oneup_flysystem.resource_cache_filesystem'}
- '%glide_media_filters%'
Chamilo\CoreBundle\Component\Utils\GlideAsset:
arguments:
- {source: '@oneup_flysystem.asset_filesystem', cache: '@oneup_flysystem.asset_cache_filesystem'}
- '%glide_media_filters%'
# Check if users are online # Check if users are online
# chamilo_core.listener.online: # chamilo_core.listener.online:
# class: Chamilo\CoreBundle\EventListener\OnlineListener # class: Chamilo\CoreBundle\EventListener\OnlineListener
@ -72,127 +62,6 @@ services:
Chamilo\CoreBundle\Repository\AssetRepository: ~ Chamilo\CoreBundle\Repository\AssetRepository: ~
# Event listeners
Chamilo\CoreBundle\EventListener\AssetListener:
arguments:
- '@Chamilo\CoreBundle\Repository\AssetRepository'
tags:
- {name: kernel.event_listener, event: vich_uploader.post_remove}
Chamilo\CoreBundle\EventListener\CourseListener:
calls:
- [setContainer, ['@service_container']]
tags:
- {name: kernel.event_listener, event: kernel.request, method: onKernelRequest, priority: 6}
- {name: kernel.event_listener, event: kernel.response, method: onKernelResponse}
- {name: kernel.event_listener, event: kernel.controller, method: onKernelController}
# Sets the user access in a course listener
Chamilo\CoreBundle\EventListener\CourseAccessListener:
arguments:
- '@doctrine.orm.entity_manager'
calls:
- [setRequest, ['@request_stack']]
tags:
- {name: kernel.event_listener, event: chamilo_course.course.access, method: onCourseAccessEvent}
# Sets the user access in a course session listener
Chamilo\CoreBundle\EventListener\SessionAccessListener:
arguments:
- '@doctrine.orm.entity_manager'
calls:
- [setRequest, ['@request_stack']]
tags:
- {name: kernel.event_listener, event: chamilo_course.course.session, method: onSessionAccessEvent}
# Setting user
Chamilo\CoreBundle\EventListener\LegacyListener:
calls:
- [setContainer, ['@service_container']]
tags:
- {name: kernel.event_listener, event: kernel.request, method: onKernelRequest, priority: 7}
- {name: kernel.event_listener, event: kernel.response, method: onKernelResponse}
- {name: kernel.event_listener, event: kernel.controller, method: onKernelController}
# Locale listener
Chamilo\CoreBundle\EventSubscriber\LocaleSubscriber:
arguments: ['%kernel.default_locale%', '@chamilo.settings.manager', '@parameter_bag']
# User locale listener
# Chamilo\CoreBundle\EventListener\UserLocaleListener:
# tags:
# - {name: kernel.event_listener, event: security.interactive_login, method: onInteractiveLogin, priority: 15}
# Settings listener
Chamilo\CoreBundle\EventListener\SettingListener:
arguments: ['@service_container']
tags:
- {name: kernel.event_listener, event: sylius.settings.pre_save, method: onSettingPreSave}
Chamilo\CoreBundle\EventListener\TwigListener:
tags:
- {name: kernel.event_listener}
# Course upload listener
Chamilo\CoreBundle\EventListener\ResourceUploadListener:
arguments: ['@router']
tags:
- {name: kernel.event_listener, event: oneup_uploader.post_persist, method: onUpload}
# Auth listeners
chamilo_core.listener.login_success_handler:
class: Chamilo\CoreBundle\EventListener\LoginSuccessHandler
arguments: ['@router', '@security.authorization_checker', '@chamilo.settings.manager']
tags:
- {name: kernel.event_listener, event: security.interactive_login, method: onSecurityInteractiveLogin}
Chamilo\CoreBundle\EventListener\LogoutListener:
tags:
- name: kernel.event_listener
event: Symfony\Component\Security\Http\Event\LogoutEvent
dispatcher: security.event_dispatcher.main
priority: 20
# Entity listeners
Chamilo\CoreBundle\Entity\Listener\ResourceListener:
tags:
- {name: doctrine.orm.entity_listener, entity_manager: default, lazy: true}
Chamilo\CoreBundle\Entity\Listener\ResourceNodeListener:
tags:
- {name: doctrine.orm.entity_listener, entity_manager: default, lazy: true}
Chamilo\CoreBundle\Entity\Listener\SessionListener:
tags:
- {name: doctrine.orm.entity_listener, entity_manager: default, lazy: true}
# When the Course entity is created/updated
Chamilo\CoreBundle\Entity\Listener\CourseListener:
arguments: ['@Chamilo\CoreBundle\ToolChain', '@chamilo.settings.manager']
tags:
- {name: doctrine.orm.entity_listener, entity_manager: default, lazy: true}
# When the User entity is created/updated -
Chamilo\CoreBundle\Entity\Listener\UserListener:
tags:
- {name: doctrine.orm.entity_listener, entity_manager: default, lazy: true}
Chamilo\CoreBundle\Entity\Listener\UserRelUserListener:
tags:
- {name: doctrine.orm.entity_listener, entity_manager: default, lazy: true}
Chamilo\CoreBundle\Entity\Listener\MessageListener:
tags:
- {name: doctrine.orm.entity_listener, entity_manager: default, lazy: true}
Chamilo\CoreBundle\Entity\Listener\SkillRelUserListener:
arguments:
- '@chamilo.settings.manager'
- '@router'
- '@translator'
tags:
- {name: doctrine.orm.entity_listener, entity_manager: default, lazy: true}
Chamilo\CoreBundle\Twig\SettingsHelper: Chamilo\CoreBundle\Twig\SettingsHelper:
arguments: arguments:
- '@chamilo.settings.manager' - '@chamilo.settings.manager'

@ -3,28 +3,26 @@ services:
autowire: true autowire: true
public: true public: true
chamilo_course.registry.settings_schema: Sylius\Bundle\SettingsBundle\Registry\ServiceRegistry:
class: Sylius\Bundle\SettingsBundle\Registry\ServiceRegistry
arguments: arguments:
- Sylius\Bundle\SettingsBundle\Schema\SchemaInterface - Sylius\Bundle\SettingsBundle\Schema\SchemaInterface
- 'CourseSettings' - 'CourseSettings'
Chamilo\CourseBundle\Settings\SettingsCourseManager: Chamilo\CourseBundle\Settings\SettingsCourseManager:
arguments: arguments:
- '@chamilo_course.registry.settings_schema' - 'Sylius\Bundle\SettingsBundle\Registry\ServiceRegistry'
- '@doctrine.orm.entity_manager' - '@doctrine.orm.entity_manager'
- '@chamilo_course.repository.parameter' - 'Chamilo\CourseBundle\Repository\CCourseSettingRepository'
- '@event_dispatcher' - '@event_dispatcher'
- '@request_stack' - '@request_stack'
Chamilo\CourseBundle\Manager\SettingsFormFactory: Chamilo\CourseBundle\Manager\SettingsFormFactory:
arguments: arguments:
- '@chamilo_course.registry.settings_schema' - 'Sylius\Bundle\SettingsBundle\Registry\ServiceRegistry'
- '@form.factory' - '@form.factory'
public: true public: true
chamilo_course.repository.parameter: Chamilo\CourseBundle\Repository\CCourseSettingRepository: ~
class: Chamilo\CourseBundle\Repository\CCourseSettingRepository
Chamilo\CourseBundle\Repository\: Chamilo\CourseBundle\Repository\:
resource: '../../Repository/' resource: '../../Repository/'

Loading…
Cancel
Save