diff --git a/src/Form/HtmlMailConfigurationForm.php b/src/Form/HtmlMailConfigurationForm.php index 2fd3a16cdae0a26b233631467b7e5e3c09327316..20115dc664a96fd42aab0fb6a3e964d7193ac7e7 100644 --- a/src/Form/HtmlMailConfigurationForm.php +++ b/src/Form/HtmlMailConfigurationForm.php @@ -2,12 +2,13 @@ namespace Drupal\htmlmail\Form; +use Drupal\htmlmail\Helper\HtmlMailHelper; use Drupal\Core\Config\ConfigFactoryInterface; +use Drupal\Core\Config\TypedConfigManagerInterface; use Drupal\Core\Extension\ModuleHandlerInterface; use Drupal\Core\Form\ConfigFormBase; use Drupal\Core\Form\FormStateInterface; use Symfony\Component\DependencyInjection\ContainerInterface; -use Drupal\htmlmail\Helper\HtmlMailHelper; /** * Class HtmlMailConfigurationForm. @@ -17,22 +18,31 @@ use Drupal\htmlmail\Helper\HtmlMailHelper; class HtmlMailConfigurationForm extends ConfigFormBase { /** - * The module_handler service. + * The module handler service. * * @var \Drupal\Core\Extension\ModuleHandlerInterface */ - protected $moduleHandler; + protected ModuleHandlerInterface $moduleHandler; /** * HtmlMailConfigurationForm constructor. * * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory - * Config factory service, injected into constructor. + * Config factory service. + * @param \Drupal\Core\Config\TypedConfigManagerInterface $typed_config_manager + * Typed config manager service. * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler - * Module Handler service, injected into constructor. + * Module handler service. */ - public function __construct(ConfigFactoryInterface $config_factory, ModuleHandlerInterface $module_handler) { - parent::__construct($config_factory); + + public function __construct(ConfigFactoryInterface $config_factory, $typed_config_manager_or_messenger, ModuleHandlerInterface $module_handler) { + // Check if the second argument is TypedConfigManagerInterface (Drupal 10.2+) + if ($typed_config_manager_or_messenger instanceof TypedConfigManagerInterface) { + parent::__construct($config_factory, $typed_config_manager_or_messenger); + } + else { + parent::__construct($config_factory); + } $this->moduleHandler = $module_handler; } @@ -40,8 +50,13 @@ class HtmlMailConfigurationForm extends ConfigFormBase { * {@inheritdoc} */ public static function create(ContainerInterface $container) { + $typed_config_manager_or_messenger = $container->has('config.typed') + ? $container->get('config.typed') + : null; + return new static( $container->get('config.factory'), + $typed_config_manager_or_messenger, $container->get('module_handler') ); }