diff --git a/src/Form/PathautoSettingsForm.php b/src/Form/PathautoSettingsForm.php index 2b845f0..de5fa57 100644 --- a/src/Form/PathautoSettingsForm.php +++ b/src/Form/PathautoSettingsForm.php @@ -13,6 +13,9 @@ use Drupal\pathauto\AliasTypeManager; use Drupal\pathauto\PathautoGeneratorInterface; use Drupal\Core\Form\FormStateInterface; use Symfony\Component\DependencyInjection\ContainerInterface; +use Drupal\Core\Extension\ModuleHandlerInterface; +use Drupal\pathauto\AliasCleanerInterface; +use Drupal\pathauto\AliasStorageHelperInterface; /** * Configure file system settings for this site. @@ -20,27 +23,72 @@ use Symfony\Component\DependencyInjection\ContainerInterface; class PathautoSettingsForm extends ConfigFormBase { /** + * Manages entity type plugin definitions. + * * @var \Drupal\Core\Entity\EntityTypeManagerInterface */ protected $entityTypeManager; /** + * Manages the discovery of entity fields. + * * @var \Drupal\Core\Entity\EntityFieldManagerInterface */ protected $entityFieldManager; /** + * Manage drupal modules. + * + * @var \Drupal\Core\Extension\ModuleHandlerInterface + */ + protected $moduleHandler; + + /** + * Provides an alias cleaner. + * + * @var \Drupal\pathauto\AliasCleanerInterface + */ + protected $aliasCleaner; + + /** + * Provides helper methods for accessing alias storage. + * + * @var \Drupal\pathauto\AliasStorageHelperInterface + */ + protected $aliasStorageHelper; + + /** + * Manages pathauto alias type plugins. + * * @var \Drupal\pathauto\AliasTypeManager */ protected $aliasTypeManager; /** - * {@inheritdoc} + * The contruct method. + * + * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory + * Defines the configuration object factory. + * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager + * Manages entity type plugin definitions. + * @param \Drupal\Core\Entity\EntityFieldManagerInterface $entity_field_manager + * Manages the discovery of entity fields. + * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler + * Manage drupal modules. + * @param \Drupal\pathauto\AliasCleanerInterface $pathauto_alias_cleaner + * Provides an alias cleaner. + * @param \Drupal\pathauto\AliasStorageHelperInterface $pathauto_alias_storage_helper + * Provides helper methods for accessing alias storage. + * @param \Drupal\pathauto\AliasTypeManager $alias_type_manager + * Manages pathauto alias type plugins. */ - public function __construct(ConfigFactoryInterface $config_factory, EntityTypeManagerInterface $entity_type_manager, EntityFieldManagerInterface $entity_field_manager, AliasTypeManager $alias_type_manager) { + public function __construct(ConfigFactoryInterface $config_factory, EntityTypeManagerInterface $entity_type_manager, EntityFieldManagerInterface $entity_field_manager, ModuleHandlerInterface $module_handler, AliasCleanerInterface $pathauto_alias_cleaner, AliasStorageHelperInterface $pathauto_alias_storage_helper, AliasTypeManager $alias_type_manager) { parent::__construct($config_factory); $this->entityTypeManager = $entity_type_manager; $this->entityFieldManager = $entity_field_manager; + $this->moduleHandler = $module_handler; + $this->aliasCleaner = $pathauto_alias_cleaner; + $this->aliasStorageHelper = $pathauto_alias_storage_helper; $this->aliasTypeManager = $alias_type_manager; } @@ -52,6 +100,9 @@ class PathautoSettingsForm extends ConfigFormBase { $container->get('config.factory'), $container->get('entity_type.manager'), $container->get('entity_field.manager'), + $container->get('module_handler'), + $container->get('pathauto.alias_cleaner'), + $container->get('pathauto.alias_storage_helper'), $container->get('plugin.manager.alias_type') ); } @@ -88,7 +139,8 @@ class PathautoSettingsForm extends ConfigFormBase { foreach ($this->entityTypeManager->getDefinitions() as $entity_type_id => $entity_type) { // Disable a checkbox if it already exists and if the entity type has // patterns currently defined or if it isn't defined by us. - $patterns_count = \Drupal::entityQuery('pathauto_pattern') + + $patterns_count = $this->entityTypeManager->getStorage('pathauto_pattern')->getQuery() ->condition('type', 'canonical_entities:' . $entity_type_id) ->count() ->execute(); @@ -127,10 +179,10 @@ class PathautoSettingsForm extends ConfigFormBase { '#description' => $this->t('Convert token values to lowercase.'), ]; - $max_length = \Drupal::service('pathauto.alias_storage_helper')->getAliasSchemaMaxlength(); + $max_length = $this->aliasStorageHelper->getAliasSchemaMaxlength(); $help_link = ''; - if (\Drupal::moduleHandler()->moduleExists('help')) { + if ($this->moduleHandler->moduleExists('help')) { $help_link = ' ' . $this->t('See Pathauto help for details.', [':pathauto-help' => Url::fromRoute('help.page', ['name' => 'pathauto'])->toString()]); } @@ -157,7 +209,8 @@ class PathautoSettingsForm extends ConfigFormBase { ]; $description = $this->t('What should Pathauto do when updating an existing content item which already has an alias?'); - if (\Drupal::moduleHandler()->moduleExists('redirect')) { + + if ($this->moduleHandler->moduleExists('redirect')) { $description .= ' ' . $this->t('The Redirect module settings affect whether a redirect is created when an alias is deleted.', [':url' => Url::fromRoute('redirect.settings')->toString()]); } else { @@ -211,7 +264,7 @@ class PathautoSettingsForm extends ConfigFormBase { '#tree' => TRUE, ]; - $punctuation = \Drupal::service('pathauto.alias_cleaner')->getPunctuationCharacters(); + $punctuation = $this->aliasCleaner->getPunctuationCharacters(); foreach ($punctuation as $name => $details) { // Use the value from config if it exists.