Mumbai
Account created on 4 August 2019, over 6 years ago
#

Merge Requests

More

Recent comments

🇮🇳India vishal.kadam Mumbai

Rest seems fine to me.

Please wait for a Project Moderator to take a look and if everything goes fine, you will get the role.

🇮🇳India vishal.kadam Mumbai

vishal.kadam made their first commit to this issue’s fork.

🇮🇳India vishal.kadam Mumbai

1. FILE: zenwidgets.info.yml

core_version_requirement: ^8 || ^9 || ^10 || ^11

A new project should not declare itself compatible with a Drupal release that is no longer supported. No site should be using Drupal 8 nor Drupal 9, and people should not be encouraged to use those Drupal releases.

2. FILE: zenwidgets.module

/**
 * @file
 * Add the script to the page bottom.
 */

The usual description for a .module file is “Hook implementations for the [module name] module”, where [module name] is the module name given in the .info.yml file.

3. FILE: src/Form/ZenWidgetsConfigForm.php

With Drupal 10 and Drupal 11, there is no longer need to use #default_value for each form element, when the parent class is ConfigFormBase: It is sufficient to use #config_target, as in the following code.

    $form['image_toolkit'] = [
      '#type' => 'radios',
      '#title' => $this->t('Select an image processing toolkit'),
      '#config_target' => 'system.image:toolkit',
      '#options' => [],
    ];

Using that code, it is no longer needed to save the configuration values in the form submission handler: The parent class will take care of that.

4. FILE: src/Form/ZenWidgetsConfigForm.php

  /**
   * The global configuration object.
   *
   * @var Drupal\Core\Config\Config
   */
  protected Config $config;

  /**
   * Constructor.
   *
   * @param Drupal\Core\Config\ConfigFactoryInterface $config_factory
   *   The config factory.
   * @param Drupal\Core\Config\TypedConfigManagerInterface $typedConfigManager
   *   The config manager.
   */
  public function __construct(
    ConfigFactoryInterface $config_factory,
    protected TypedConfigManagerInterface $typedConfigManager,
  ) {
    parent::__construct($config_factory, $this->typedConfigManager);
    $this->config = $this->config('zenwidgets.config');
  }

FILE: src/Plugin/Field/FieldFormatter/WidgetDefaultFormatter.php

  /**
   * ZEN widgets service.
   *
   * @var \Drupal\zenwidgets\Service\ZenWidgetsService
   *   The ZEN widgets service.
   */
  protected ZenWidgetsService $widgetsService;

  /**
   * Constructs a WidgetDefaultFormatter instance.
   *
   * @param string $plugin_id
   *   The plugin ID for the formatter.
   * @param mixed $plugin_definition
   *   The plugin implementation definition.
   * @param \Drupal\Core\Field\FieldDefinitionInterface $field_definition
   *   The definition of the field to which the formatter is associated.
   * @param array $settings
   *   The formatter settings.
   * @param string $label
   *   The formatter label display setting.
   * @param string $view_mode
   *   The view mode.
   * @param array $third_party_settings
   *   Any third party settings.
   * @param \Drupal\zenwidgets\Service\ZenWidgetsService $widgets_service
   *   The ZEN widgets service.
   */
  public function __construct($plugin_id, $plugin_definition, FieldDefinitionInterface $field_definition, array $settings, $label, $view_mode, array $third_party_settings, ZenWidgetsService $widgets_service) {
    parent::__construct($plugin_id, $plugin_definition, $field_definition, $settings, $label, $view_mode, $third_party_settings);
    $this->widgetsService = $widgets_service;
  }

FILE: src/Plugin/Field/FieldWidget/WidgetDefaultWidget.php

  /**
   * ZEN widgets service.
   *
   * @var \Drupal\zenwidgets\Service\ZenWidgetsService
   *   The ZEN widgets service.
   */
  protected ZenWidgetsService $widgetsService;

  /**
   * Constructs a WidgetBase object.
   *
   * @param string $plugin_id
   *   The plugin ID for the widget.
   * @param mixed $plugin_definition
   *   The plugin implementation definition.
   * @param \Drupal\Core\Field\FieldDefinitionInterface $field_definition
   *   The definition of the field to which the widget is associated.
   * @param array $settings
   *   The widget settings.
   * @param array $third_party_settings
   *   Any third party settings.
   * @param \Drupal\zenwidgets\Service\ZenWidgetsService $widgets_service
   *   The ZEN widgets service.
   */
  public function __construct(
    $plugin_id,
    $plugin_definition,
    FieldDefinitionInterface $field_definition,
    array $settings,
    array $third_party_settings,
    ZenWidgetsService $widgets_service,
  ) {
    parent::__construct($plugin_id, $plugin_definition, $field_definition, $settings, $third_party_settings);
    $this->widgetsService = $widgets_service;
  }

FILE: src/Service/ZenWidgetsService.php

  /**
   * Http client interface.
   *
   * @var \GuzzleHttp\ClientInterface
   *   The client to retrieve the widgets.
   */
  protected ClientInterface $httpClient;

  /**
   * Language manager.
   *
   * @var \Drupal\Core\Language\LanguageManagerInterface
   *   The language manager.
   */
  protected LanguageManagerInterface $languageManager;

  /**
   * Configuration object.
   *
   * @var \Drupal\Core\Config\ImmutableConfig
   */
  protected ImmutableConfig $config;

  /**
   * Logger object.
   *
   * @var \Psr\Log\LoggerInterface
   */
  protected LoggerInterface $logger;

  /**
   * Constructor.
   *
   * @param GuzzleHttp\ClientInterface $http_client
   *   The HTTP client.
   * @param Drupal\Core\Language\LanguageManagerInterface $language_manager
   *   The language manager.
   * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
   *   The config factory.
   * @param \Psr\Log\LoggerInterface $logger
   *   The logger interface.
   */
  public function __construct(
    ClientInterface $http_client,
    LanguageManagerInterface $language_manager,
    ConfigFactoryInterface $config_factory,
    LoggerInterface $logger,
  ) {
    $this->httpClient = $http_client;
    $this->languageManager = $language_manager;
    $this->config = $config_factory->get('zenwidgets.config');
    $this->logger = $logger;
  }

New modules, which are compatible with Drupal 10 and higher versions are expected to include type declarations in property definitions, and use constructor property promotion.

🇮🇳India vishal.kadam Mumbai

1.

main is acceptable as branch name, but it is not yet fully supported on drupal.org. For the moment, it is better to avoid it.

Release branch names always end with the literal .x as described in Release branches .

2. FILE: advanced_country_field.module

/**
 * @file
 * Advanced Country Field module file.
 */

The usual description for a .module file is “Hook implementations for the [module name] module”, where [module name] is the module name given in the .info.yml file.

3. FILE: src/Form/AdvancedCountryFieldSettingsForm.php, src/Form/CustomCountryForm.php

ConfigFormBase::__construct() needs to be called. Since its parameters changed in Drupal 10.2, the project cannot be compatible with all the Drupal 10 releases and Drupal 11; it needs to require at least Drupal 10.2.

4. FILE: src/Form/AdvancedCountryFieldSettingsForm.php, src/Form/CountryFilterForm.php and src/Form/CustomCountryForm.php

With Drupal 10 and Drupal 11, there is no longer need to use #default_value for each form element, when the parent class is ConfigFormBase: It is sufficient to use #config_target, as in the following code.

    $form['image_toolkit'] = [
      '#type' => 'radios',
      '#title' => $this->t('Select an image processing toolkit'),
      '#config_target' => 'system.image:toolkit',
      '#options' => [],
    ];

Using that code, it is no longer needed to save the configuration values in the form submission handler: The parent class will take care of that.

5. FILE: src/Service/CountryDataService.php

  /**
   * The language manager.
   *
   * @var \Drupal\Core\Language\LanguageManagerInterface
   */
  protected $languageManager;

  /**
   * The config factory.
   *
   * @var \Drupal\Core\Config\ConfigFactoryInterface
   */
  protected $configFactory;

  /**
   * The module handler.
   *
   * @var \Drupal\Core\Extension\ModuleHandlerInterface
   */
  protected $moduleHandler;

  /**
   * Constructs a CountryDataService object.
   *
   * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
   *   The language manager.
   * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
   *   The config factory.
   * @param \Drupal\Core\StringTranslation\TranslationInterface $string_translation
   *   The string translation manager.
   * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
   *   The module handler.
   */
  public function __construct(LanguageManagerInterface $language_manager, ConfigFactoryInterface $config_factory, TranslationInterface $string_translation, ModuleHandlerInterface $module_handler) {
    $this->languageManager = $language_manager;
    $this->configFactory = $config_factory;
    $this->stringTranslation = $string_translation;
    $this->moduleHandler = $module_handler;
  }

New modules, which are compatible with Drupal 10 and higher versions are expected to include type declarations in property definitions, and use constructor property promotion.

6. Fix the warnings/errors reported by PHP_CodeSniffer (see attached advanced_country_field-phpcs-issues.txt file).

Note: I would suggest enabling GitLab CI for the project, follow the Drupal Association .gitlab-ci.yml template and fix the PHP_CodeSniffer errors/warnings it reports.

🇮🇳India vishal.kadam Mumbai

1. FILE: src/Form/ContentTypesForm.php, src/Form/FieldMappingForm.php, src/Form/SettingsForm.php

parent::__construct($config_factory);

ConfigFormBase::__construct() requires two parameters. See the change record .

2. FILE: templates/ai-content-assistant-usage-stats.html.twig

Twig code needs to be correctly indented. Drupal uses two spaces for indentation, not four spaces or tabs.

3. Fix the warnings/errors reported by PHP_CodeSniffer (see attached sphoenixai-phpcs-issues.txt file).

Note: I would suggest enabling GitLab CI for the project, follow the Drupal Association .gitlab-ci.yml template and fix the PHP_CodeSniffer errors/warnings it reports.

🇮🇳India vishal.kadam Mumbai

As a side note: These applications do not require that new releases are created after reviews.

🇮🇳India vishal.kadam Mumbai

Except for the first point regarding the removal of the main branch, I don’t see the other mentioned changes reflected in the 1.0.x branch. It seems you might have forgotten to push the latest changes.

🇮🇳India vishal.kadam Mumbai

1. FILE: zenwidgets.info.yml

core_version_requirement: ^8 || ^9 || ^10 || ^11

FILE: composer.json

"drupal/core": "^9.5 || ^10 || ^11"

A new project should not declare itself compatible with a Drupal release that is no longer supported. No site should be using Drupal 8 nor Drupal 9, and people should not be encouraged to use those Drupal releases.

2. Fix the warnings/errors reported by PHP_CodeSniffer.

Note: I would suggest enabling GitLab CI for the project, follow the Drupal Association .gitlab-ci.yml template and fix the PHP_CodeSniffer errors/warnings it reports.

phpcs --standard=Drupal,DrupalPractice --extensions=php,module,inc,install,test,profile,theme,info,txt,md,yml zenwidgets/

FILE: zenwidgets/README.md
----------------------------------------------------------------------
FOUND 0 ERRORS AND 1 WARNING AFFECTING 1 LINE
----------------------------------------------------------------------
 15 | WARNING | Line exceeds 80 characters; contains 125 characters
----------------------------------------------------------------------

FILE: zenwidgets/src/Plugin/Field/FieldFormatter/WidgetDefaultFormatter.php
--------------------------------------------------------------------------------
FOUND 1 ERROR AND 1 WARNING AFFECTING 2 LINES
--------------------------------------------------------------------------------
 10 | ERROR   | [x] Missing class doc comment
 37 | WARNING | [ ] \Drupal calls should be avoided in classes, use dependency injection instead
--------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
--------------------------------------------------------------------------------

FILE: zenwidgets/src/Plugin/Field/FieldWidget/WidgetDefaultWidget.php
--------------------------------------------------------------------------------
FOUND 3 ERRORS AND 1 WARNING AFFECTING 4 LINES
--------------------------------------------------------------------------------
 11 | ERROR   | [x] Missing class doc comment
 32 | ERROR   | [ ] Missing short description in doc comment
 33 | ERROR   | [ ] Description for the @return value is missing
 39 | WARNING | [ ] \Drupal calls should be avoided in classes, use dependency injection instead
--------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
--------------------------------------------------------------------------------

FILE: zenwidgets/src/Plugin/Field/FieldType/WidgetItem.php
--------------------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
--------------------------------------------------------------------------------
 11 | ERROR | [x] Missing class doc comment
--------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
--------------------------------------------------------------------------------

FILE: zenwidgets/src/Form/ZenWidgetsConfigForm.php
--------------------------------------------------------------------------------
FOUND 2 ERRORS AFFECTING 2 LINES
--------------------------------------------------------------------------------
 11 | ERROR | [x] Missing class doc comment
 13 | ERROR | [ ] Missing member variable doc comment
--------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
--------------------------------------------------------------------------------

FILE: zenwidgets/src/Service/ZenWidgetsService.php
--------------------------------------------------------------------------------
FOUND 28 ERRORS AND 2 WARNINGS AFFECTING 28 LINES
--------------------------------------------------------------------------------
  11 | ERROR   | [x] Missing class doc comment
  15 | ERROR   | [ ] Missing short description in doc comment
  16 | ERROR   | [x] Data types in @var tags need to be fully namespaced
  20 | ERROR   | [ ] Missing short description in doc comment
  21 | ERROR   | [x] Data types in @var tags need to be fully namespaced
  25 | ERROR   | [ ] Missing short description in doc comment
  26 | ERROR   | [ ] Missing parameter comment
  26 | ERROR   | [x] Data types in @param tags need to be fully namespaced
  27 | ERROR   | [ ] Missing parameter comment
  27 | ERROR   | [x] Data types in @param tags need to be fully namespaced
  37 | ERROR   | [ ] Missing short description in doc comment
  38 | ERROR   | [ ] Description for the @return value is missing
  46 | ERROR   | [ ] Missing short description in doc comment
  47 | ERROR   | [ ] Description for the @return value is missing
  53 | ERROR   | [ ] Missing short description in doc comment
  54 | ERROR   | [ ] Description for the @return value is missing
  60 | ERROR   | [ ] Missing short description in doc comment
  61 | ERROR   | [ ] Description for the @return value is missing
  67 | ERROR   | [ ] Missing short description in doc comment
  68 | ERROR   | [ ] Description for the @return value is missing
  74 | ERROR   | [ ] Missing short description in doc comment
  75 | ERROR   | [ ] Description for the @return value is missing
 100 | ERROR   | [ ] Missing short description in doc comment
 101 | ERROR   | [ ] Missing parameter comment
 102 | ERROR   | [ ] Missing parameter comment
 104 | ERROR   | [ ] Description for the @return value is missing
 117 | ERROR   | [ ] Missing short description in doc comment
 118 | ERROR   | [ ] Description for the @return value is missing
 124 | WARNING | [ ] \Drupal calls should be avoided in classes, use dependency injection instead
 130 | WARNING | [ ] \Drupal calls should be avoided in classes, use dependency injection instead
--------------------------------------------------------------------------------
PHPCBF CAN FIX THE 5 MARKED SNIFF VIOLATIONS AUTOMATICALLY
--------------------------------------------------------------------------------

FILE: zenwidgets/zenwidgets.module
----------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
----------------------------------------------------------------------
 1 | ERROR | [x] Missing file doc comment
----------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
----------------------------------------------------------------------    
🇮🇳India vishal.kadam Mumbai

vishal.kadam made their first commit to this issue’s fork.

🇮🇳India vishal.kadam Mumbai

The typical path to confirming users usually involves reviewing the content that you've created on this site. In this case, you've not created any content except this post, so there is no content to review. Postponing for now, after you have posted some content on Drupal.org you may want to add a comment to this issue to request a new review. Please visit the Become a confirmed user page for information. That page also tells you what "limitations" mean.

Since you haven't contributed yet here is a list of resources to help you on your journey:

🇮🇳India vishal.kadam Mumbai

Rest looks good to me.

Please wait for a Project Moderator to take a look and if everything goes fine, you will get the role.

🇮🇳India vishal.kadam Mumbai

1. FILE: require_revision.module

/**
 * Implements hook_form_alter().
 */
function require_revision_form_alter(&$form, FormStateInterface $form_state, $form_id) {
  \Drupal::service('require_revision.hooks')->formAlter($form, $form_state, $form_id);
}
/**
 * Implements hook_entity_presave().
 */
function require_revision_entity_presave(EntityInterface $entity) {
  \Drupal::service('require_revision.hooks')->entityPresave($entity);
}

Procedural hooks should be marked with the #[LegacyHook] attribute.

2. FILE: src/Hook/RequireRevisionHooks.php

  /**
   * Implements hook_form_alter().
   */
  public function formAlter(&$form, FormStateInterface $form_state, $form_id): void {
  /**
   * Implements hook_entity_presave().
   */
  public function entityPresave(EntityInterface $entity): void {

The hook method must have a #[Hook()] attribute.

🇮🇳India vishal.kadam Mumbai

We do not delete projects with commits; it is not even possible to delete
them, since the /Delete/ button is programmatically removed in that case.

🇮🇳India vishal.kadam Mumbai

I have published Hardcoded 'article' bundle type in addLink prevents double-click event creation for other content types 🐛 Hardcoded 'article' bundle type in addLink prevents double-click event creation for other content types Active and confirmed the account.

🇮🇳India vishal.kadam Mumbai

1. FILE: composer.json

  "require": {
    "drupal/core": "^10 || ^11"
  },

Update drupal core requirement as per info file.

2. FILE: require_revision.module

For a new module that aims to be compatible with Drupal 10/11, it is expected it implements hooks as class methods as described in Support for object oriented hook implementations using autowired services .

3. FILE: src/Form/RequireRevisionSettingsForm.php

    $form['revision_required_' . $entity_type] = [
      '#type' => 'checkboxes',
      '#title' => $this->t('Requiring revisions'),
      '#description' => $this->t('Select the types that should require a new revision to be created when edited.'),
      '#options' => $options,
      '#config_target' => 'require_revision.settings:revision_required_' . $entity_type,
      '#default_value' => $config->get('revision_required_' . $entity_type) ?? [],
    ];

    $form['revision_log_required_' . $entity_type] = [
      '#type' => 'checkboxes',
      '#title' => $this->t('Requiring revision log messages'),
      '#description' => $this->t('Select the types that should require a revision log message. This only applies when the type is also set to require revisions above.'),
      '#options' => $options,
      '#config_target' => 'require_revision.settings:revision_log_required_' . $entity_type,
      '#default_value' => $config->get('revision_log_required_' . $entity_type) ?? [],
    ];

It is sufficient to use #config_target. There is no longer need to use #default_value.

  /**
   * The entity type manager.
   *
   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
   */
  protected $entityTypeManager;

  /**
   * Constructs a RequireRevisionSettingsForm object.
   *
   * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
   *   The config factory service.
   * @param \Drupal\Core\Config\TypedConfigManagerInterface $typed_config
   *   The typed config manager service.
   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
   *   The entity type manager service.
   */
  public function __construct(ConfigFactoryInterface $config_factory, TypedConfigManagerInterface $typed_config, EntityTypeManagerInterface $entity_type_manager) {
    parent::__construct($config_factory, $typed_config);
    $this->entityTypeManager = $entity_type_manager;
  }

New modules, which are compatible with Drupal 10 and higher versions are expected to use constructor property promotion.

🇮🇳India vishal.kadam Mumbai

Rest looks good to me.

Please wait for a Project Moderator to take a look and if everything goes fine, you will get the role.

🇮🇳India vishal.kadam Mumbai

main is acceptable as branch name, but it is not yet fully supported on drupal.org. For the moment, it is better to avoid it.

🇮🇳India vishal.kadam Mumbai

The typical path to confirming users usually involves reviewing the content that you've created on this site. In this case, you've not created any content except this post, so there is no content to review. Postponing for now, after you have posted some content on Drupal.org you may want to add a comment to this issue to request a new review. Please visit the Become a confirmed user page for information. That page also tells you what "limitations" mean.

Since you haven't contributed yet here is a list of resources to help you on your journey:

🇮🇳India vishal.kadam Mumbai

The typical path to confirming users usually involves reviewing the content that you've created on this site. In this case, you've not created any content except this post, so there is no content to review. Postponing for now, after you have posted some content on Drupal.org you may want to add a comment to this issue to request a new review. Please visit the Become a confirmed user page for information. That page also tells you what "limitations" mean.

Since you haven't contributed yet here is a list of resources to help you on your journey:

🇮🇳India vishal.kadam Mumbai

FILE: src/Form/RequireRevisionSettingsForm.php

parent::__construct($config_factory);

ConfigFormBase::__construct() requires two parameters. See the change record .

🇮🇳India vishal.kadam Mumbai

FILE: src/Form/RequireRevisionSettingsForm.php

ConfigFormBase::__construct() needs to be called. Since its parameters changed in Drupal 10.2, the project cannot be compatible with all the Drupal 10 releases and Drupal 11; it needs to require at least Drupal 10.2.

With Drupal 10 and Drupal 11, there is no longer need to use #default_value for each form element, when the parent class is ConfigFormBase: It is sufficient to use #config_target, as in the following code.

    $form['image_toolkit'] = [
      '#type' => 'radios',
      '#title' => $this->t('Select an image processing toolkit'),
      '#config_target' => 'system.image:toolkit',
      '#options' => [],
    ];

Using that code, it is no longer needed to save the configuration values in the form submission handler: The parent class will take care of that.

🇮🇳India vishal.kadam Mumbai

FILE: src/Controller/PublishToggleController.php

  /**
   * Constructs a new PublishToggleController object.
   *
   * @param \Drupal\Core\Session\AccountProxyInterface $current_user
   *   The current user service.
   * @param \Drupal\node\NodeStorageInterface $nodeStorage
   *   The node storage service.
   */
  public function __construct(AccountProxyInterface $current_user,protected NodeStorageInterface $nodeStorage) {
    $this->currentUser = $current_user;
  }

  /**
   * {@inheritdoc}
   *
   * @noinspection PhpParamsInspection
   */
  public static function create(ContainerInterface $container) {
    return new static(
        $container->get('current_user'),
        $container->get('entity_type.manager')->getStorage('node')
    );
  }

The parent class already has properties and methods for the entity type manager, and the current user service object. There is no need to redefine properties for the same purpose; instead, the parent class methods should be used.

🇮🇳India vishal.kadam Mumbai

1.

main is acceptable as branch name, but it is not yet fully supported on drupal.org. For the moment, it is better to avoid it.

2. FILE: require_revision.module

/**
 * @file
 * Primary module hooks for Require Revision module.
 *
 * Provides functionality to enforce revision creation and revision log messages
 * for configured entity types.
 */

Drupal does not have primary and secondary hooks. Instead of that, it is preferable to use the usual description: “Hook implementations for the [module name] module”, where [module name] is the name of the module given in its .info.yml file.

3. Fix the warnings/errors reported by PHP_CodeSniffer.

Note: I would suggest enabling GitLab CI for the project, follow the Drupal Association .gitlab-ci.yml template and fix the PHP_CodeSniffer errors/warnings it reports.

phpcs --standard=Drupal,DrupalPractice --extensions=php,module,inc,install,test,profile,theme,info,txt,md,yml require_revision/

FILE: require_revision/require_revision.info.yml
--------------------------------------------------------------------------------
FOUND 1 ERROR AND 1 WARNING AFFECTING 2 LINES
--------------------------------------------------------------------------------
  1 | WARNING | [ ] Remove "version" from the info file, it will be added by drupal.org packaging automatically
 13 | ERROR   | [x] Expected 1 newline at end of file; 0 found
--------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
--------------------------------------------------------------------------------

FILE: require_revision/require_revision.module
------------------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
------------------------------------------------------------------------------
 138 | ERROR | [x] Expected 1 newline at end of file; 0 found
------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
------------------------------------------------------------------------------

FILE: require_revision/README.md
-------------------------------------------------------------------------
FOUND 1 ERROR AND 26 WARNINGS AFFECTING 27 LINES
-------------------------------------------------------------------------
   3 | WARNING | [ ] Line exceeds 80 characters; contains 140 characters
  20 | WARNING | [ ] Line exceeds 80 characters; contains 340 characters
  25 | WARNING | [ ] Line exceeds 80 characters; contains 88 characters
  33 | WARNING | [ ] Line exceeds 80 characters; contains 95 characters
  34 | WARNING | [ ] Line exceeds 80 characters; contains 93 characters
  35 | WARNING | [ ] Line exceeds 80 characters; contains 106 characters
  36 | WARNING | [ ] Line exceeds 80 characters; contains 91 characters
  37 | WARNING | [ ] Line exceeds 80 characters; contains 93 characters
  38 | WARNING | [ ] Line exceeds 80 characters; contains 85 characters
  77 | WARNING | [ ] Line exceeds 80 characters; contains 87 characters
  82 | WARNING | [ ] Line exceeds 80 characters; contains 81 characters
  84 | WARNING | [ ] Line exceeds 80 characters; contains 88 characters
  88 | WARNING | [ ] Line exceeds 80 characters; contains 88 characters
  91 | WARNING | [ ] Line exceeds 80 characters; contains 84 characters
  92 | WARNING | [ ] Line exceeds 80 characters; contains 92 characters
  94 | WARNING | [ ] Line exceeds 80 characters; contains 83 characters
 103 | WARNING | [ ] Line exceeds 80 characters; contains 152 characters
 106 | WARNING | [ ] Line exceeds 80 characters; contains 104 characters
 109 | WARNING | [ ] Line exceeds 80 characters; contains 103 characters
 115 | WARNING | [ ] Line exceeds 80 characters; contains 109 characters
 116 | WARNING | [ ] Line exceeds 80 characters; contains 142 characters
 117 | WARNING | [ ] Line exceeds 80 characters; contains 113 characters
 121 | WARNING | [ ] Line exceeds 80 characters; contains 111 characters
 122 | WARNING | [ ] Line exceeds 80 characters; contains 110 characters
 132 | WARNING | [ ] Line exceeds 80 characters; contains 91 characters
 176 | WARNING | [ ] Line exceeds 80 characters; contains 158 characters
 209 | ERROR   | [x] Expected 1 newline at end of file; 0 found
-------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
-------------------------------------------------------------------------

FILE: require_revision/config/schema/require_revision.schema.yml
--------------------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
--------------------------------------------------------------------------------
 40 | ERROR | [x] Expected 1 newline at end of file; 0 found
--------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
--------------------------------------------------------------------------------

FILE: require_revision/require_revision.permissions.yml
--------------------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
--------------------------------------------------------------------------------
 4 | ERROR | [x] Expected 1 newline at end of file; 0 found
--------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
--------------------------------------------------------------------------------

FILE: require_revision/tests/src/Functional/RequireRevisionSettingsFormTest.php
--------------------------------------------------------------------------------
FOUND 116 ERRORS AFFECTING 115 LINES
--------------------------------------------------------------------------------
   3 | ERROR | [x] Namespaced classes, interfaces and traits should not begin with a file doc comment
  20 | ERROR | [x] Opening brace should be on the same line as the declaration
  22 | ERROR | [x] Line indented incorrectly; expected 2 spaces, found 4
  25 | ERROR | [x] Line indented incorrectly; expected 2 spaces, found 4
  27 | ERROR | [x] Line indented incorrectly; expected 2 spaces, found 4
  30 | ERROR | [x] Line indented incorrectly; expected 2 spaces, found 4
  31 | ERROR | [x] Array indentation error, expected 6 spaces but found 4
  32 | ERROR | [x] Array indentation error, expected 6 spaces but found 4
  33 | ERROR | [x] Array indentation error, expected 6 spaces but found 4
  34 | ERROR | [x] Array indentation error, expected 6 spaces but found 4
  37 | ERROR | [x] Line indented incorrectly; expected 2 spaces, found 4
  42 | ERROR | [x] Line indented incorrectly; expected 2 spaces, found 4
  44 | ERROR | [x] Line indented incorrectly; expected 2 spaces, found 4
  47 | ERROR | [x] Line indented incorrectly; expected 2 spaces, found 4
  48 | ERROR | [x] Opening brace should be on the same line as the declaration
  49 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
  51 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
  52 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
  54 | ERROR | [x] Array indentation error, expected 14 spaces but found 12
  55 | ERROR | [x] Array indentation error, expected 14 spaces but found 12
  56 | ERROR | [x] Array indentation error, expected 14 spaces but found 12
  57 | ERROR | [x] Array indentation error, expected 14 spaces but found 12
  60 | ERROR | [x] Line indented incorrectly; expected 2 spaces, found 4
  62 | ERROR | [x] Line indented incorrectly; expected 2 spaces, found 4
  65 | ERROR | [x] Line indented incorrectly; expected 2 spaces, found 4
  66 | ERROR | [x] Opening brace should be on the same line as the declaration
  67 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
  68 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
  69 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
  71 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
  72 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
  73 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
  74 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
  75 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
  76 | ERROR | [x] Object operator not indented correctly; expected 10 spaces but found 12
  77 | ERROR | [x] Line indented incorrectly; expected 2 spaces, found 4
  79 | ERROR | [x] Line indented incorrectly; expected 2 spaces, found 4
  82 | ERROR | [x] Line indented incorrectly; expected 2 spaces, found 4
  83 | ERROR | [x] Opening brace should be on the same line as the declaration
  84 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
  85 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
  87 | ERROR | [x] Array indentation error, expected 14 spaces but found 12
  88 | ERROR | [x] Array indentation error, expected 14 spaces but found 12
  92 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
  93 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
  95 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
  96 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
  98 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
  99 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 101 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 102 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 103 | ERROR | [x] Array indentation error, expected 10 spaces but found 8
 103 | ERROR | [x] TRUE, FALSE and NULL must be uppercase; expected "TRUE" but found "true"
 105 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 107 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 108 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 109 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 110 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 111 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 112 | ERROR | [x] Line indented incorrectly; expected 2 spaces, found 4
 114 | ERROR | [x] Line indented incorrectly; expected 2 spaces, found 4
 117 | ERROR | [x] Line indented incorrectly; expected 2 spaces, found 4
 118 | ERROR | [x] Opening brace should be on the same line as the declaration
 119 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 120 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 122 | ERROR | [x] Array indentation error, expected 14 spaces but found 12
 123 | ERROR | [x] Array indentation error, expected 14 spaces but found 12
 127 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 128 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 129 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 131 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 132 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 134 | ERROR | [x] Array indentation error, expected 14 spaces but found 12
 135 | ERROR | [x] Array indentation error, expected 14 spaces but found 12
 138 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 140 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 141 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 143 | ERROR | [x] Array indentation error, expected 14 spaces but found 12
 144 | ERROR | [x] Array indentation error, expected 14 spaces but found 12
 148 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 149 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 151 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 152 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 153 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 154 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 155 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 156 | ERROR | [x] Line indented incorrectly; expected 2 spaces, found 4
 158 | ERROR | [x] Line indented incorrectly; expected 2 spaces, found 4
 161 | ERROR | [x] Line indented incorrectly; expected 2 spaces, found 4
 162 | ERROR | [x] Opening brace should be on the same line as the declaration
 163 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 164 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 166 | ERROR | [x] Array indentation error, expected 14 spaces but found 12
 167 | ERROR | [x] Array indentation error, expected 14 spaces but found 12
 171 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 172 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 173 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 174 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 176 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 177 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 179 | ERROR | [x] Array indentation error, expected 14 spaces but found 12
 180 | ERROR | [x] Array indentation error, expected 14 spaces but found 12
 183 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 185 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 186 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 188 | ERROR | [x] Array indentation error, expected 14 spaces but found 12
 189 | ERROR | [x] Array indentation error, expected 14 spaces but found 12
 193 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 194 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 196 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 197 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 198 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 202 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 203 | ERROR | [x] Line indented incorrectly; expected 4 spaces, found 8
 204 | ERROR | [x] Line indented incorrectly; expected 2 spaces, found 4
 206 | ERROR | [x] Expected 1 newline at end of file; 0 found
--------------------------------------------------------------------------------
PHPCBF CAN FIX THE 116 MARKED SNIFF VIOLATIONS AUTOMATICALLY
--------------------------------------------------------------------------------

FILE: require_revision/src/Form/RequireRevisionSettingsForm.php
--------------------------------------------------------------------------------
FOUND 156 ERRORS AND 3 WARNINGS AFFECTING 153 LINES
--------------------------------------------------------------------------------
   3 | ERROR   | [x] Namespaced classes, interfaces and traits should not begin with a file doc comment
  23 | ERROR   | [x] Opening brace should be on the same line as the declaration
  25 | ERROR   | [x] Line indented incorrectly; expected 2 spaces, found 4
  30 | ERROR   | [x] Line indented incorrectly; expected 2 spaces, found 4
  32 | ERROR   | [x] Line indented incorrectly; expected 2 spaces, found 4
  38 | ERROR   | [x] Line indented incorrectly; expected 2 spaces, found 4
  39 | ERROR   | [x] Opening brace should be on the same line as the declaration
  40 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
  41 | ERROR   | [x] Line indented incorrectly; expected 2 spaces, found 4
  43 | ERROR   | [x] Line indented incorrectly; expected 2 spaces, found 4
  46 | ERROR   | [x] Line indented incorrectly; expected 2 spaces, found 4
  47 | ERROR   | [x] Opening brace should be on the same line as the declaration
  48 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
  51 | ERROR   | [x] Line indented incorrectly; expected 2 spaces, found 4
  53 | ERROR   | [x] Line indented incorrectly; expected 2 spaces, found 4
  56 | ERROR   | [x] Line indented incorrectly; expected 2 spaces, found 4
  57 | ERROR   | [x] Opening brace should be on the same line as the declaration
  58 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
  59 | ERROR   | [x] Line indented incorrectly; expected 2 spaces, found 4
  61 | ERROR   | [x] Line indented incorrectly; expected 2 spaces, found 4
  64 | ERROR   | [x] Line indented incorrectly; expected 2 spaces, found 4
  65 | ERROR   | [x] Opening brace should be on the same line as the declaration
  66 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
  67 | ERROR   | [x] Line indented incorrectly; expected 2 spaces, found 4
  69 | ERROR   | [x] Line indented incorrectly; expected 2 spaces, found 4
  72 | ERROR   | [x] Line indented incorrectly; expected 2 spaces, found 4
  73 | ERROR   | [x] Opening brace should be on the same line as the declaration
  74 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
  76 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
  77 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
  78 | ERROR   | [x] Object operator not indented correctly; expected 10 spaces but found 12
  80 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
  81 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
  82 | ERROR   | [x] Line indented incorrectly; expected 6 spaces, found 12
  83 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
  85 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
  86 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
  87 | ERROR   | [x] Object operator not indented correctly; expected 10 spaces but found 12
  89 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
  90 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
  91 | ERROR   | [x] Line indented incorrectly; expected 6 spaces, found 12
  92 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
  94 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
  95 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
  96 | ERROR   | [x] Object operator not indented correctly; expected 10 spaces but found 12
  98 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
  99 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 100 | ERROR   | [x] Line indented incorrectly; expected 6 spaces, found 12
 101 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 103 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 104 | ERROR   | [x] Array indentation error, expected 10 spaces but found 8
 105 | WARNING | [ ] Translatable strings must not begin or end with white spaces, use placeholders with t() for variables
 106 | ERROR   | [ ] Concatenating translatable strings is not allowed, use placeholders instead and only one string literal
 107 | ERROR   | [x] Array indentation error, expected 10 spaces but found 8
 108 | ERROR   | [x] Array indentation error, expected 10 spaces but found 8
 111 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 112 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 113 | ERROR   | [x] Line indented incorrectly; expected 6 spaces, found 12
 114 | ERROR   | [x] Array indentation error, expected 14 spaces but found 12
 115 | ERROR   | [x] Array indentation error, expected 14 spaces but found 12
 116 | ERROR   | [x] Array indentation error, expected 14 spaces but found 12
 116 | ERROR   | [x] TRUE, FALSE and NULL must be uppercase; expected "FALSE" but found "false"
 118 | ERROR   | [x] Line indented incorrectly; expected 6 spaces, found 12
 124 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 126 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 127 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 128 | ERROR   | [x] Line indented incorrectly; expected 6 spaces, found 12
 129 | ERROR   | [x] Array indentation error, expected 14 spaces but found 12
 130 | ERROR   | [x] Array indentation error, expected 14 spaces but found 12
 131 | ERROR   | [x] Array indentation error, expected 14 spaces but found 12
 131 | ERROR   | [x] TRUE, FALSE and NULL must be uppercase; expected "FALSE" but found "false"
 133 | ERROR   | [x] Line indented incorrectly; expected 6 spaces, found 12
 139 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 141 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 142 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 143 | ERROR   | [x] Line indented incorrectly; expected 6 spaces, found 12
 144 | ERROR   | [x] Array indentation error, expected 14 spaces but found 12
 145 | ERROR   | [x] Array indentation error, expected 14 spaces but found 12
 146 | ERROR   | [x] Array indentation error, expected 14 spaces but found 12
 146 | ERROR   | [x] TRUE, FALSE and NULL must be uppercase; expected "FALSE" but found "false"
 148 | ERROR   | [x] Line indented incorrectly; expected 6 spaces, found 12
 154 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 156 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 160 | ERROR   | [x] Line indented incorrectly; expected 6 spaces, found 12
 161 | ERROR   | [x] Array indentation error, expected 14 spaces but found 12
 163 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 163 | ERROR   | [x] Expected newline after closing brace
 164 | ERROR   | [x] Line indented incorrectly; expected 6 spaces, found 12
 165 | ERROR   | [x] Line indented incorrectly; expected 6 spaces, found 12
 166 | ERROR   | [x] Array indentation error, expected 14 spaces but found 12
 167 | ERROR   | [x] Array indentation error, expected 14 spaces but found 12
 168 | ERROR   | [x] Array indentation error, expected 14 spaces but found 12
 171 | ERROR   | [x] Line indented incorrectly; expected 6 spaces, found 12
 172 | ERROR   | [x] Line indented incorrectly; expected 6 spaces, found 12
 173 | ERROR   | [x] Array indentation error, expected 14 spaces but found 12
 175 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 177 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 178 | ERROR   | [x] Line indented incorrectly; expected 2 spaces, found 4
 180 | ERROR   | [x] Line indented incorrectly; expected 2 spaces, found 4
 183 | ERROR   | [x] Expected 1 spaces after parameter type; 31 found
 185 | ERROR   | [x] Expected 1 spaces after parameter type; 30 found
 187 | ERROR   | [x] Expected 1 spaces after parameter type; 31 found
 192 | ERROR   | [x] Line indented incorrectly; expected 2 spaces, found 4
 193 | ERROR   | [x] Multi-line function declaration not indented correctly; expected 6 spaces but found 8
 194 | ERROR   | [x] Multi-line function declaration not indented correctly; expected 6 spaces but found 8
 195 | ERROR   | [x] Multi-line function declaration not indented correctly; expected 6 spaces but found 8
 196 | ERROR   | [x] Multi-line function declaration not indented correctly; expected 6 spaces but found 8
 196 | ERROR   | [x] Multi-line function declarations must have a trailing comma after the last parameter
 198 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 199 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 200 | ERROR   | [x] Array indentation error, expected 10 spaces but found 8
 201 | ERROR   | [x] Array indentation error, expected 10 spaces but found 8
 202 | ERROR   | [x] Array indentation error, expected 10 spaces but found 8
 205 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 206 | ERROR   | [x] Array indentation error, expected 10 spaces but found 8
 207 | ERROR   | [x] Array indentation error, expected 10 spaces but found 8
 208 | ERROR   | [x] Array indentation error, expected 10 spaces but found 8
 209 | WARNING | [ ] Translatable strings must not begin or end with white spaces, use placeholders with t() for variables
 210 | ERROR   | [ ] Concatenating translatable strings is not allowed, use placeholders instead and only one string literal
 211 | ERROR   | [x] Array indentation error, expected 10 spaces but found 8
 212 | ERROR   | [x] Array indentation error, expected 10 spaces but found 8
 213 | ERROR   | [x] Array indentation error, expected 10 spaces but found 8
 214 | ERROR   | [x] Array indentation error, expected 12 spaces but found 8
 217 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 218 | ERROR   | [x] Array indentation error, expected 10 spaces but found 8
 219 | ERROR   | [x] Array indentation error, expected 10 spaces but found 8
 220 | ERROR   | [x] Array indentation error, expected 10 spaces but found 8
 221 | WARNING | [ ] Translatable strings must not begin or end with white spaces, use placeholders with t() for variables
 222 | ERROR   | [ ] Concatenating translatable strings is not allowed, use placeholders instead and only one string literal
 224 | ERROR   | [x] Array indentation error, expected 10 spaces but found 8
 225 | ERROR   | [x] Array indentation error, expected 10 spaces but found 8
 226 | ERROR   | [x] Array indentation error, expected 10 spaces but found 8
 227 | ERROR   | [x] Array indentation error, expected 12 spaces but found 8
 230 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 231 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 232 | ERROR   | [x] Line indented incorrectly; expected 6 spaces, found 12
 233 | ERROR   | [x] Array indentation error, expected 14 spaces but found 12
 234 | ERROR   | [x] Array indentation error, expected 14 spaces but found 12
 235 | ERROR   | [x] Array indentation error, expected 14 spaces but found 12
 235 | ERROR   | [x] TRUE, FALSE and NULL must be uppercase; expected "TRUE" but found "true"
 238 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 239 | ERROR   | [x] Line indented incorrectly; expected 2 spaces, found 4
 241 | ERROR   | [x] Line indented incorrectly; expected 2 spaces, found 4
 244 | ERROR   | [x] Line indented incorrectly; expected 2 spaces, found 4
 245 | ERROR   | [x] Opening brace should be on the same line as the declaration
 246 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 248 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 249 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 250 | ERROR   | [x] Line indented incorrectly; expected 6 spaces, found 12
 251 | ERROR   | [x] Line indented incorrectly; expected 6 spaces, found 12
 254 | ERROR   | [x] Line indented incorrectly; expected 2 spaces, found 12
 256 | ERROR   | [x] Line indented incorrectly; expected 2 spaces, found 12
 257 | ERROR   | [x] Line indented incorrectly; expected 2 spaces, found 12
 260 | ERROR   | [x] Line indented incorrectly; expected 2 spaces, found 12
 264 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 266 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 267 | ERROR   | [x] Line indented incorrectly; expected 4 spaces, found 8
 268 | ERROR   | [x] Line indented incorrectly; expected 2 spaces, found 4
 270 | ERROR   | [x] Expected 1 newline at end of file; 0 found
--------------------------------------------------------------------------------
PHPCBF CAN FIX THE 153 MARKED SNIFF VIOLATIONS AUTOMATICALLY
--------------------------------------------------------------------------------

FILE: require_revision/require_revision.libraries.yml
--------------------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
--------------------------------------------------------------------------------
 8 | ERROR | [x] Expected 1 newline at end of file; 0 found
--------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
--------------------------------------------------------------------------------

FILE: require_revision/require_revision.links.menu.yml
--------------------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
--------------------------------------------------------------------------------
 6 | ERROR | [x] Expected 1 newline at end of file; 0 found
--------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
--------------------------------------------------------------------------------

FILE: require_revision/require_revision.routing.yml
--------------------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
--------------------------------------------------------------------------------
 7 | ERROR | [x] Expected 1 newline at end of file; 0 found
--------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
--------------------------------------------------------------------------------
🇮🇳India vishal.kadam Mumbai

vishal.kadam made their first commit to this issue’s fork.

🇮🇳India vishal.kadam Mumbai

1. main is a wrong name for a branch and should be removed. Release branch names always end with the literal .x as described in Release branches .

main will be a supported branch in future, but for the moment it is better not to use it. It is not wrong, but it is not completely supported on drupal.org.

2. FILE: sphoenix_ai.module

/**
 * @file
 * SPhoenix AI Content Assistant module.
 */

The usual description for a .module file is “Hook implementations for the [module name] module”, where [module name] is the module name given in the .info.yml file.

/**
 * Implements hook_cron().
 */
// function sphoenix_ai_cron()
// {
//   // Clean up old usage data.
//   $config = \Drupal::config('sphoenix_ai.settings');
//   $cleanup_days = $config->get('cleanup_usage_days') ?: 365;

//   if ($cleanup_days > 0) {
//     try {
//       $usage_tracker = \Drupal::service('sphoenix_ai.usage_tracker');
//       $deleted = $usage_tracker->cleanupOldData($cleanup_days);

//       if ($deleted > 0) {
//         \Drupal::logger('sphoenix_ai')->info('Cleaned up @count old usage records.', ['@count' => $deleted]);
//       }
//     } catch (\Exception $e) {
//       \Drupal::logger('sphoenix_ai')->error('Failed to cleanup usage data: @message', ['@message' => $e->getMessage()]);
//     }
//   }

//   // Additional maintenance tasks for usage statistics
//   try {
//     // Update cached statistics
//     $usage_tracker = \Drupal::service('sphoenix_ai.usage_tracker');
//     $usage_tracker->refreshCachedStats();

//     // Archive old detailed logs (keep summaries)
//     $usage_tracker->archiveOldLogs(90); // Archive logs older than 90 days

//   } catch (\Exception $e) {
//     \Drupal::logger('sphoenix_ai')->warning('Usage statistics maintenance partially failed: @message', ['@message' => $e->getMessage()]);
//   }
// }

Remove commented code.

3. FILE: templates/ai-content-assistant-usage-stats.html.twig

Twig code needs to be correctly indented. Drupal uses two spaces for indentation, not four spaces or tabs.

4. FILE: src/Controller/AuthCallbackController.php

  /**
   * The authentication service.
   *
   * @var \Drupal\sphoenix_ai\Service\AuthenticationService
   */
  protected $authService;

  /**
   * Constructs an AuthCallbackController object.
   */
  public function __construct(AuthenticationService $auth_service)
  {
    $this->authService = $auth_service;
  }

FILE: src/Controller/AuthController.php

  /**
   * The authentication service.
   *
   * @var \Drupal\sphoenix_ai\Service\AuthenticationService
   */
  protected $authService;

  /**
   * Constructs an AuthController object.
   *
   * @param \Drupal\sphoenix_ai\Service\AuthenticationService $auth_service
   *   The authentication service.
   */
  public function __construct(AuthenticationService $auth_service)
  {
    $this->authService = $auth_service;
  }

FILE: src/Controller/ChatController.php

  /**
   * The API client service.
   *
   * @var \Drupal\sphoenix_ai\Service\ApiClientService
   */
  protected $apiClient;

  /**
   * The field mapper service.
   *
   * @var \Drupal\sphoenix_ai\Service\FieldMapperService
   */
  protected $fieldMapper;

  /**
   * The usage tracker service.
   *
   * @var \Drupal\sphoenix_ai\Service\UsageTrackerService
   */
  protected $usageTracker;

  /**
   * The authentication service.
   *
   * @var \Drupal\sphoenix_ai\Service\AuthenticationService
   */
  protected $authService;

  /**
   * The subscription service.
   *
   * @var \Drupal\sphoenix_ai\Service\SubscriptionService
   */
  protected $subscriptionService;

  /**
   * The content analyzer service.
   *
   * @var \Drupal\sphoenix_ai\Service\ContentAnalyzerService
   */
  protected $contentAnalyzer;

  /**
   * Constructs a ChatController object.
   */
  public function __construct(
    ApiClientService $api_client,
    FieldMapperService $field_mapper,
    UsageTrackerService $usage_tracker,
    AuthenticationService $auth_service,
    SubscriptionService $subscription_service,
    ContentAnalyzerService $content_analyzer
  ) {
    $this->apiClient = $api_client;
    $this->fieldMapper = $field_mapper;
    $this->usageTracker = $usage_tracker;
    $this->authService = $auth_service;
    $this->subscriptionService = $subscription_service;
    $this->contentAnalyzer = $content_analyzer;
  }

FILE: src/Controller/FileUploadController.php

  /**
   * The file system service.
   *
   * @var \Drupal\Core\File\FileSystemInterface
   */
  protected $fileSystem;

  /**
   * Constructs a FileUploadController object.
   */
  public function __construct(
    FileSystemInterface $file_system
  ) {
    $this->fileSystem = $file_system;
  }

FILE: src/Controller/SubscriptionController.php

  /**
   * The subscription service.
   *
   * @var \Drupal\sphoenix_ai\Service\SubscriptionService
   */
  protected $subscriptionService;

  /**
   * Constructs a SubscriptionController object.
   *
   * @param \Drupal\sphoenix_ai\Service\SubscriptionService $subscription_service
   *   The subscription service.
   */
  public function __construct(SubscriptionService $subscription_service)
  {
    $this->subscriptionService = $subscription_service;
  }

FILE: src/Controller/UsageController.php

  /**
   * The usage tracker service.
   *
   * @var \Drupal\sphoenix_ai\Service\UsageTrackerService
   */
  protected $usageTracker;

  /**
   * Constructs a UsageController object.
   *
   * @param \Drupal\sphoenix_ai\Service\UsageTrackerService $usage_tracker
   *   The usage tracker service.
   */
  public function __construct(UsageTrackerService $usage_tracker)
  {
    $this->usageTracker = $usage_tracker;
  }

New modules, which are compatible with Drupal 10 and higher versions are expected to include type declarations in property definitions, and use constructor property promotion.

5. FILE: src/Form/ContentTypesForm.php, src/Form/FieldMappingForm.php, src/Form/SettingsForm.php

parent::__construct($config_factory, $typed_config_manager);

ConfigFormBase::__construct() parameters changed in Drupal 10.2, the project cannot be compatible with all the Drupal 10 releases and Drupal 11; it needs to require at least Drupal 10.2.

With Drupal 10 and Drupal 11, there is no longer need to use #default_value for each form element, when the parent class is ConfigFormBase: It is sufficient to use #config_target, as in the following code.

    $form['image_toolkit'] = [
      '#type' => 'radios',
      '#title' => $this->t('Select an image processing toolkit'),
      '#config_target' => 'system.image:toolkit',
      '#options' => [],
    ];

Using that code, it is no longer needed to save the configuration values in the form submission handler: The parent class will take care of that.

🇮🇳India vishal.kadam Mumbai

1. FILE: README.md

The README file is missing the required sections - Requirements and Configuration.

2. FILE: edit_media_modal.module

For a new module that aims to be compatible with Drupal 10/11, it is expected it implements hooks as class methods as described in Support for object oriented hook implementations using autowired services .

/**
 * @file
 * This is the module to improve working edit media entity in modal windows.
 */

The usual description for a .module file is “Hook implementations for the [module name] module”, where [module name] is the module name given in the .info.yml file.

3. FILE: src/Plugin/CKEditor5Plugin/EditMediaModalSettings.php

  /**
   * The entity type manager.
   *
   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
   */
  protected EntityTypeManagerInterface $entityTypeManager;

  /**
   * The EditMediaModalSettings object construct.
   *
   * @param array $configuration
   *   A configuration array containing information about the plugin instance.
   * @param string $plugin_id
   *   The plugin ID for the plugin instance.
   * @param mixed $plugin_definition
   *   The plugin implementation definition.
   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
   *   The entity type manager.
   */
  public function __construct(array $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager) {
    parent::__construct($configuration, $plugin_id, $plugin_definition);
    $this->entityTypeManager = $entity_type_manager;
  }

New modules, which are compatible with Drupal 10 and higher versions are expected to include type declarations in property definitions, and use constructor property promotion.

🇮🇳India vishal.kadam Mumbai

I have deleted the project as requested.

🇮🇳India vishal.kadam Mumbai

Rest seems fine to me.

Please wait for other reviewers and Project Moderator to take a look and if everything goes fine, you will get the role.

🇮🇳India vishal.kadam Mumbai

The typical path to confirming users usually involves reviewing the content that you've created on this site. In this case, you've not created any content except this post, so there is no content to review. Postponing for now, after you have posted some content on Drupal.org you may want to add a comment to this issue to request a new review. Please visit the Become a confirmed user page for information. That page also tells you what "limitations" mean.

Since you haven't contributed yet here is a list of resources to help you on your journey:

🇮🇳India vishal.kadam Mumbai

I have reviewed your post and confirmed the account.

🇮🇳India vishal.kadam Mumbai

I have reviewed your post and confirmed the account.

🇮🇳India vishal.kadam Mumbai

PHP Constructor Property Promotion has not been implemented correctly. Please refer to this guide for proper implementation.

And just a question: can this be checked in the codesniffer? If there a "drupal 10 ruleset" because it seems a good idea to have it, especially for me :D

I think this is already being discussed under issue #3278431 📌 Use PHP 8 constructor property promotion for existing code Needs work .

🇮🇳India vishal.kadam Mumbai

I have published Aspect ratio of uncached responsive images not correct in Firefox 🐛 Aspect ratio of uncached responsive images not correct in Firefox Active and confirmed the account.

🇮🇳India vishal.kadam Mumbai

FILE: src/Controller/PublishToggleController.php

  /**
   * The current user.
   *
   * @var \Drupal\Core\Session\AccountProxyInterface
   */
  protected $currentUser;

  /**
   * The node storage service.
   *
   * @var \Drupal\node\NodeStorageInterface
   */
  protected $nodeStorage;

  /**
   * Constructs a new PublishToggleController object.
   *
   * @param \Drupal\Core\Session\AccountProxyInterface $current_user
   *   The current user service.
   * @param \Drupal\node\NodeStorageInterface $node_storage
   *   The node storage service.
   */
  public function __construct(AccountProxyInterface $current_user, NodeStorageInterface $node_storage) {
    $this->currentUser = $current_user;
    $this->nodeStorage = $node_storage;
  }

FILE: src/Plugin/Field/FieldFormatter/PublishToggleFormatter.php

  /**
   * The current user.
   *
   * @var \Drupal\Core\Session\AccountProxyInterface
   */
  protected $currentUser;

  /**
   * The CSRF token generator.
   *
   * @var \Drupal\Core\Access\CsrfTokenGenerator
   */
  protected $csrfToken;

  /**
   * Constructs a PublishToggleFormatter object.
   */
  public function __construct(
    $plugin_id,
    $plugin_definition,
    FieldDefinitionInterface $field_definition,
    array $settings,
    $label,
    $view_mode,
    array $third_party_settings,
    AccountProxyInterface $current_user,
    CsrfTokenGenerator $csrf_token,
  ) {
    parent::__construct($plugin_id, $plugin_definition, $field_definition, $settings, $label, $view_mode, $third_party_settings);

    $this->currentUser = $current_user;
    $this->csrfToken = $csrf_token;
  }

New modules, which are compatible with Drupal 10 and higher versions are expected to include type declarations in property definitions, and use property promotion.

🇮🇳India vishal.kadam Mumbai

FILE: src/Controller/MontonioWebhookController.php

  /**
   * The Montonio API client factory.
   *
   * @var \Drupal\commerce_montonio\Service\MontonioApiClientFactory
   */
  protected $apiClientFactory;

  /**
   * Montonio logger.
   *
   * @var \Drupal\commerce_montonio\Service\MontonioLogger
   */
  protected $montonioLogger;

  /**
   * Montonio payment service.
   *
   * @var \Drupal\commerce_montonio\Service\MontonioPaymentService
   */
  protected $paymentService;

  /**
   * Order repository.
   *
   * @var \Drupal\commerce_montonio\Repository\OrderRepositoryInterface
   */
  protected $orderRepository;

  /**
   * The webhook validator service.
   *
   * @var \Drupal\commerce_montonio\Service\WebhookValidator
   */
  protected $webhookValidator;

  /**
   * Constructs a new MontonioWebhookController object.
   *
   * @param \Drupal\commerce_montonio\Service\MontonioApiClientFactory $apiClientFactory
   *   The Montonio API client factory.
   * @param \Drupal\commerce_montonio\Service\MontonioLogger $montonioLogger
   *   The Montonio logger.
   * @param \Drupal\commerce_montonio\Service\MontonioPaymentService $paymentService
   *   The Montonio payment service.
   * @param \Drupal\commerce_montonio\Repository\OrderRepositoryInterface $orderRepository
   *   The order repository.
   * @param \Drupal\commerce_montonio\Service\WebhookValidator $webhookValidator
   *   The webhook validator service.
   */
  public function __construct(
    MontonioApiClientFactory $apiClientFactory,
    MontonioLogger $montonioLogger,
    MontonioPaymentService $paymentService,
    OrderRepositoryInterface $orderRepository,
    WebhookValidator $webhookValidator,
  ) {
    $this->apiClientFactory = $apiClientFactory;
    $this->montonioLogger = $montonioLogger;
    $this->paymentService = $paymentService;
    $this->orderRepository = $orderRepository;
    $this->webhookValidator = $webhookValidator;
  }

New modules, which are compatible with Drupal 10 and higher versions are expected to include type declarations in property definitions, and use property promotion.

🇮🇳India vishal.kadam Mumbai

I have unpublished the duplicate forum topic and retained the one with more comments.
It has also been moved to the "General Discussion" category, which seems most appropriate.

For reference, the active forum post is available at:
https://www.drupal.org/forum/general/general-discussion/2025-10-06/what-...

🇮🇳India vishal.kadam Mumbai

Remember to change status, when the project is ready to be reviewed. In this queue, projects are only reviewed when the status is Needs review.

🇮🇳India vishal.kadam Mumbai

It appears there are multiple project applications created using your account.

Since a successful completion of the project application process results in the applicant being granted the necessary role to be able to opt projects into security advisory coverage, there is no need to take multiple applications through the process. Once the first application has been successfully approved, the applicant can promote other projects without review. Because of this, posting multiple applications is not necessary, and results in additional workload for reviewers, which in turn results in longer wait times for everyone in the queue. With this in mind, your secondary applications have been marked as Closed (duplicate), with only one application left open.

🇮🇳India vishal.kadam Mumbai

The typical path to confirming users usually involves reviewing the content that you've created on this site. In this case, you've not created any content except this post, so there is no content to review. Postponing for now, after you have posted some content on Drupal.org you may want to add a comment to this issue to request a new review. Please visit the Become a confirmed user page for information. That page also tells you what "limitations" mean.

Since you haven't contributed yet here is a list of resources to help you on your journey:

🇮🇳India vishal.kadam Mumbai

The typical path to confirm users usually involves reviewing content you created on this site. In this case, you just created this issue, so there is no content to review.

I am postponing this issue. After you posted some content on Drupal.org, you may want to add a comment to this issue to request a new review.

🇮🇳India vishal.kadam Mumbai

Hello, and a warm welcome to the Drupal community!

You don't need a confirmed account to host your projects. The ability to host a module, theme, or distribution on Drupal.org requires the Git access permission.
See Obtaining Git access.

🇮🇳India vishal.kadam Mumbai

Rest looks good to me.

Please wait for a Project Moderator to take a look and if everything goes fine, you will get the role.

🇮🇳India vishal.kadam Mumbai

You can use PHP CodeSniffer's phpcbf command on local to automatically fix coding standards.

🇮🇳India vishal.kadam Mumbai

1. FILE: readMe.md

File name should be all-caps i.e. READMe.md

2. Fix all the errors/warnings reported by the phpcs job.

I'm not sure if the "valid failed" eslint and phpcs really want changes at the intentdation or if they are just bored.

Drupal uses two spaces for indentation, not four spaces or tabs.

🇮🇳India vishal.kadam Mumbai

1. FILE: sudoku.info.yml

package: drupal/sudoku_gen

package entries should follow Drupal capitalization standard and use sentence case ("User interface" not "User Interface") by default, except if referring to something which properly uses title case ("Organic Groups").

2. FILE: src/Controller/SudokuController.php

      $this->logger->error('Sudoku solveAjax exception: @m', [
        '@m' => $e->getMessage(),
      ]);
      $this->logger->error($e->getTraceAsString());

The $message parameter passed to the LoggerInterface methods must be a literal string that uses placeholders. It's not a translatable string returned from t()/$this->t(), a string concatenation, a value returned from a function/method, nor a variable containing an exception object.

Remove the second logger since it is duplicate.

🇮🇳India vishal.kadam Mumbai

1. main, 1.0.0 and 1.0.1 are wrong names for a branch and should be removed. Release branch names always end with the literal .x as described in Release branches .

main will be a supported branch in future, but for the moment it is better not to use it. It is not wrong, but it is not completely supported on drupal.org.

2. FILE: readMe.md

The README file is missing the required section - Configuration.

3. FILE: view_publish_toggle.info.yml

package: Custom

This line is used by custom modules created for specific sites. It is not a package name used for projects hosted on drupal.org.

4. Fix the warnings/errors reported by PHP_CodeSniffer.

I would suggest enabling GitLab CI for the project, follow the Drupal Association .gitlab-ci.yml template and fix the PHP_CodeSniffer errors/warnings it reports.

phpcs --standard=Drupal,DrupalPractice --extensions=php,module,inc,install,test,profile,theme,info,txt,md,yml view_publish_toggle/

FILE: view_publish_toggle/src/Plugin/Field/FieldFormatter/PublishToggleFormatter.php
--------------------------------------------------------------------------------
FOUND 1 ERROR AND 2 WARNINGS AFFECTING 3 LINES
--------------------------------------------------------------------------------
  8 | ERROR   | Missing short description in doc comment
 22 | WARNING | \Drupal calls should be avoided in classes, use dependency injection instead
 41 | WARNING | \Drupal calls should be avoided in classes, use dependency injection instead
--------------------------------------------------------------------------------

FILE: view_publish_toggle/src/Controller/PublishToggleController.php
--------------------------------------------------------------------------------
FOUND 1 ERROR AND 3 WARNINGS AFFECTING 4 LINES
--------------------------------------------------------------------------------
 10 | ERROR   | [x] Missing class doc comment
 17 | WARNING | [ ] Node::load calls should be avoided in classes, use dependency injection instead
 20 | WARNING | [ ] \Drupal calls should be avoided in classes, use dependency injection instead
 38 | WARNING | [ ] \Drupal calls should be avoided in classes, use dependency injection instead
--------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
--------------------------------------------------------------------------------

FILE: view_publish_toggle/view_publish_toggle.module
--------------------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
--------------------------------------------------------------------------------
 1 | ERROR | [x] Missing file doc comment
--------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
--------------------------------------------------------------------------------

FILE: view_publish_toggle/readMe.md
----------------------------------------------------------------------
FOUND 0 ERRORS AND 1 WARNING AFFECTING 1 LINE
----------------------------------------------------------------------
 5 | WARNING | Line exceeds 80 characters; contains 143 characters
----------------------------------------------------------------------
🇮🇳India vishal.kadam Mumbai

I am changing priority as per Issue priorities .

🇮🇳India vishal.kadam Mumbai

I am changing priority as per Issue priorities .

🇮🇳India vishal.kadam Mumbai

I am changing priority as per Issue priorities .

🇮🇳India vishal.kadam Mumbai

I am changing priority as per Issue priorities .

🇮🇳India vishal.kadam Mumbai

I am changing priority as per Issue priorities .

🇮🇳India vishal.kadam Mumbai

1. master and 1.0.1 are wrong names for a branch and should be removed. Release branch names always end with the literal .x as described in Release branches .

2. FILE: sudoku.info.yml

package: Custom

This line is used by custom modules created for specific sites. It is not a package name used for projects hosted on drupal.org.

3. FILE: sudoku.module

/**
 * @file
 * Contains sudoku.module.
 */

The usual description for a .module file is “Hook implementations for the [module name] module”, where [module name] is the module name given in the .info.yml file.

4. FILE: src/Controller/SudokuController.php

$this->logger->error($e->getTraceAsString());

The $message parameter passed to the LoggerInterface methods must be a literal string that uses placeholders. It's not a translatable string returned from t()/$this->t(), a string concatenation, a value returned from a function/method, nor a variable containing an exception object.

5. FILE: src/Controller/SudokuController.php

  /**
   * Constructor.
   */
  public function __construct(

FILE: src/Service/SudokuGenerator.php

  /**
   * SudokuGenerator constructor.
   *
   * @param SudokuSolver $solver
   *   The Sudoku solver service.
   */
  public function __construct(SudokuSolver $solver) {

The documentation comment for constructors is not mandatory anymore, If it is given, the description must be “Constructs a new [class name] object”, where [class name] includes the class namespace.

6. Fix the warnings/errors reported by PHP_CodeSniffer.

I would suggest enabling GitLab CI for the project, follow the Drupal Association .gitlab-ci.yml template and fix the PHP_CodeSniffer errors/warnings it reports.

phpcs --standard=Drupal,DrupalPractice --extensions=php,module,inc,install,test,profile,theme,info,txt,md,yml sudoku_gen/

FILE: sudoku_gen/README.md
----------------------------------------------------------------------
FOUND 0 ERRORS AND 10 WARNINGS AFFECTING 10 LINES
----------------------------------------------------------------------
  4 | WARNING | Line exceeds 80 characters; contains 162 characters
 46 | WARNING | Line exceeds 80 characters; contains 210 characters
 57 | WARNING | Line exceeds 80 characters; contains 132 characters
 58 | WARNING | Line exceeds 80 characters; contains 87 characters
 76 | WARNING | Line exceeds 80 characters; contains 106 characters
 77 | WARNING | Line exceeds 80 characters; contains 120 characters
 78 | WARNING | Line exceeds 80 characters; contains 119 characters
 79 | WARNING | Line exceeds 80 characters; contains 108 characters
 80 | WARNING | Line exceeds 80 characters; contains 198 characters
 81 | WARNING | Line exceeds 80 characters; contains 117 characters
----------------------------------------------------------------------

FILE: sudoku_gen/src/Form/SudokuForm.php
------------------------------------------------------------------------
FOUND 0 ERRORS AND 1 WARNING AFFECTING 1 LINE
------------------------------------------------------------------------
 8 | WARNING | [x] Unused use statement
------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
------------------------------------------------------------------------
🇮🇳India vishal.kadam Mumbai

I have reviewed your posts and confirmed the account.

There were no posts/comments to publish.

🇮🇳India vishal.kadam Mumbai

1. master is a wrong name for a branch and should be removed. Release branch names always end with the literal .x as described in Release branches .

2. FILE: README.md

The README file is missing the required sections - Installation, and Configuration.

3. FILE: did_ai_provider.module

Drupal does not have primary and secondary hooks. Instead of that, it is preferable to use the usual description: “Hook implementations for the [module name] module”, where [module name] is the name of the module given in its .info.yml file.

4. Fix the warnings/errors reported by PHP_CodeSniffer.

I would suggest enabling GitLab CI for the project, follow the Drupal Association .gitlab-ci.yml template and fix the PHP_CodeSniffer errors/warnings it reports.

phpcs --standard=Drupal,DrupalPractice --extensions=php,module,inc,install,test,profile,theme,info,txt,md,yml did_ai_provider/

FILE: did_ai_provider/definitions/api_defaults.yml
------------------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
------------------------------------------------------------------------------
 57 | ERROR | [x] Expected 1 newline at end of file; 0 found
------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
------------------------------------------------------------------------------

FILE: did_ai_provider/README.md
------------------------------------------------------------------------
FOUND 1 ERROR AND 6 WARNINGS AFFECTING 7 LINES
------------------------------------------------------------------------
 11 | WARNING | [ ] Line exceeds 80 characters; contains 96 characters
 12 | WARNING | [ ] Line exceeds 80 characters; contains 86 characters
 20 | WARNING | [ ] Line exceeds 80 characters; contains 99 characters
 43 | WARNING | [ ] Line exceeds 80 characters; contains 110 characters
 44 | WARNING | [ ] Line exceeds 80 characters; contains 118 characters
 50 | WARNING | [ ] Line exceeds 80 characters; contains 95 characters
 52 | ERROR   | [x] Expected 1 newline at end of file; 2 found
------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
------------------------------------------------------------------------

FILE: did_ai_provider/config/schema/did_ai_provider.schema.yml
------------------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
------------------------------------------------------------------------------
 22 | ERROR | [x] Expected 1 newline at end of file; 2 found
------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
------------------------------------------------------------------------------

FILE: did_ai_provider/config/install/did_ai_provider.settings.yml
------------------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
------------------------------------------------------------------------------
 1 | ERROR | [x] Expected 1 newline at end of file; 2 found
------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
------------------------------------------------------------------------------

FILE: did_ai_provider/did_ai_provider.links.menu.yml
------------------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
------------------------------------------------------------------------------
 5 | ERROR | [x] Expected 1 newline at end of file; 3 found
------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
------------------------------------------------------------------------------

FILE: did_ai_provider/src/Plugin/AiAutomatorType/DidImageAndAudioToVideo.php
------------------------------------------------------------------------------
FOUND 0 ERRORS AND 1 WARNING AFFECTING 1 LINE
------------------------------------------------------------------------------
 540 | WARNING | Line exceeds 80 characters; contains 81 characters
------------------------------------------------------------------------------

FILE: did_ai_provider/src/DidApiService.php
---------------------------------------------------------------------------
FOUND 0 ERRORS AND 1 WARNING AFFECTING 1 LINE
---------------------------------------------------------------------------
 430 | WARNING | Line exceeds 80 characters; contains 89 characters
---------------------------------------------------------------------------

FILE: did_ai_provider/did_ai_provider.services.yml
------------------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
------------------------------------------------------------------------------
 15 | ERROR | [x] Expected 1 newline at end of file; 0 found
------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
------------------------------------------------------------------------------

FILE: did_ai_provider/did_ai_provider.info.yml
------------------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
------------------------------------------------------------------------------
 8 | ERROR | [x] Expected 1 newline at end of file; 2 found
------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
------------------------------------------------------------------------------
🇮🇳India vishal.kadam Mumbai

1. FILE: ai_webform_guard.info.yml

dependencies:
  - ai
  - webform:webform

The dependencies follow the format
:.

2. FILE: ai_webform_guard.module

/**
 * @file
 * Contains ai_webform_guard.module.
 */

The usual description for a .module file is “Hook implementations for the [module name] module”, where [module name] is the module name given in the .info.yml file.

3. FILE: src/Service/ProviderHelper.php

  /**
   * Constructor.
   *
   * @param \Drupal\Core\Config\ConfigFactoryInterface $configFactory
   *   The configuration factory.
   * @param \Drupal\ai\AiProviderPluginManager $aiProviderManager
   *   The AI provider manager.
   */
  public function __construct(ConfigFactoryInterface $configFactory, AiProviderPluginManager $aiProviderManager) {

The documentation comment for constructors is not mandatory anymore, If it is given, the description must be “Constructs a new [class name] object”, where [class name] includes the class namespace.

🇮🇳India vishal.kadam Mumbai

1. FILE: deindex_unpublished_files.module

Since the module is declared compatible with Drupal 10.2, removing the function implementing the hook is not possible. The function still needs to be defined, but it calls the method defined by the service class, as described in Support for object oriented hook implementations using autowired services (Backwards-compatible Hook implementation for Drupal versions from 10.1 to 11.0).

2. FILE: src/Form/SettingsForm.php

  /**
   * The file system service.
   *
   * @var \Drupal\Core\File\FileSystemInterface
   */
  protected FileSystemInterface $fileSystem;

  /**
   * The stream wrapper manager service.
   *
   * @var \Drupal\Core\StreamWrapper\StreamWrapperManagerInterface
   */
  protected StreamWrapperManagerInterface $streamWrapperManager;

  /**
   * Constructs a SettingsForm object.
   *
   * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
   *   The config factory service.
   * @param \Drupal\Core\Config\TypedConfigManagerInterface $typed_config_manager
   *   The typed config manager service.
   * @param \Drupal\Core\File\FileSystemInterface $fileSystem
   *   The file system service.
   * @param \Drupal\Core\StreamWrapper\StreamWrapperManagerInterface $streamWrapperManager
   *   The stream wrapper manager service.
   */
  public function __construct(
    ConfigFactoryInterface $config_factory,
    TypedConfigManagerInterface $typed_config_manager,
    FileSystemInterface $fileSystem,
    StreamWrapperManagerInterface $streamWrapperManager,
  ) {
    parent::__construct($config_factory, $typed_config_manager);
    $this->fileSystem = $fileSystem;
    $this->streamWrapperManager = $streamWrapperManager;
  }

FILE: src/Hook/MediaHooks.php

  /**
   * The file system service.
   *
   * @var \Drupal\Core\File\FileSystemInterface
   */
  protected FileSystemInterface $fileSystem;

  /**
   * The configuration factory service.
   *
   * @var \Drupal\Core\Config\ConfigFactoryInterface
   */
  protected ConfigFactoryInterface $configFactory;

  /**
   * The entity type manager service.
   *
   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
   */
  protected EntityTypeManagerInterface $entityTypeManager;

  /**
   * MediaHooks constructor.
   *
   * @param \Drupal\Core\File\FileSystemInterface $file_system
   *   The file system service.
   * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
   *   The configuration factory service.
   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
   *   The entity type manager service.
   */
  public function __construct(
    FileSystemInterface $file_system,
    ConfigFactoryInterface $config_factory,
    EntityTypeManagerInterface $entity_type_manager,
  ) {
    $this->fileSystem = $file_system;
    $this->configFactory = $config_factory;
    $this->entityTypeManager = $entity_type_manager;
  }

New modules, which are compatible with Drupal 10 and higher versions are expected to include type declarations in property definitions, and use property promotion.

🇮🇳India vishal.kadam Mumbai

vishal.kadam made their first commit to this issue’s fork.

🇮🇳India vishal.kadam Mumbai

vishal.kadam made their first commit to this issue’s fork.

🇮🇳India vishal.kadam Mumbai

1. FILE: ai_llms_txt_generator.module

/**
 * @file
 * Contains ai_llms_txt_generator.module.
 */

The usual description for a .module file is “Hook implementations for the [module name] module”, where [module name] is the module name given in the .info.yml file.

2. FILE: src/Controller/GenerateController.php and src/Controller/LlmsTxtController.php

Since that class does not use methods from the parent class, it does not need to use ControllerBase as parent class. Controllers do not need to have a parent class; as long as they implement \Drupal\Core\DependencyInjection\ContainerInjectionInterface, they are fine.

3. FILE: src/Form/LlmsTxtSettingsForm.php

The parameters for ConfigFormBase::__construct() changed in Drupal 10.2; the project cannot be compatible with all the Drupal 10 releases and Drupal 11; it needs to require at least Drupal 10.2.

With Drupal 10 and Drupal 11, there is no longer need to use #default_value for each form element, when the parent class is ConfigFormBase: It is sufficient to use #config_target, as in the following code.

    $form['image_toolkit'] = [
      '#type' => 'radios',
      '#title' => $this->t('Select an image processing toolkit'),
      '#config_target' => 'system.image:toolkit',
      '#options' => [],
    ];

Using that code, it is no longer needed to save the configuration values in the form submission handler: The parent class will take care of that.

4. FILE: src/Controller/GenerateController.php

  /**
   * The config factory.
   *
   * @var \Drupal\Core\Config\ConfigFactoryInterface
   */
  protected $configFactory;

  /**
   * The sitemap parser service.
   *
   * @var \Drupal\ai_llms_txt_generator\Service\SitemapParserService
   */
  protected $sitemapParser;

  /**
   * The AI generator service.
   *
   * @var \Drupal\ai_llms_txt_generator\Service\AiGeneratorService
   */
  protected $aiGenerator;

  /**
   * Constructs a GenerateController object.
   *
   * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
   *   The config factory.
   * @param \Drupal\ai_llms_txt_generator\Service\SitemapParserService $sitemap_parser
   *   The sitemap parser service.
   * @param \Drupal\ai_llms_txt_generator\Service\AiGeneratorService $ai_generator
   *   The AI generator service.
   */
  public function __construct(
    ConfigFactoryInterface $config_factory,
    SitemapParserService $sitemap_parser,
    AiGeneratorService $ai_generator
  ) {
    $this->configFactory = $config_factory;
    $this->sitemapParser = $sitemap_parser;
    $this->aiGenerator = $ai_generator;
  }

FILE: src/Controller/LlmsTxtController.php

  /**
   * The config factory.
   *
   * @var \Drupal\Core\Config\ConfigFactoryInterface
   */
  protected $configFactory;

  /**
   * Constructs a LlmsTxtController object.
   *
   * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
   *   The config factory.
   */
  public function __construct(ConfigFactoryInterface $config_factory) {
    $this->configFactory = $config_factory;
  }

FILE: src/Form/LlmsTxtSettingsForm.php

  /**
   * The sitemap parser service.
   *
   * @var \Drupal\ai_llms_txt_generator\Service\SitemapParserService
   */
  protected $sitemapParser;

  /**
   * The AI generator service.
   *
   * @var \Drupal\ai_llms_txt_generator\Service\AiGeneratorService
   */
  protected $aiGenerator;

  /**
   * Constructs a LlmsTxtSettingsForm object.
   *
   * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
   *   The config factory.
   * @param \Drupal\ai_llms_txt_generator\Service\SitemapParserService $sitemap_parser
   *   The sitemap parser service.
   * @param \Drupal\ai_llms_txt_generator\Service\AiGeneratorService $ai_generator
   *   The AI generator service.
   */
  public function __construct(
    ConfigFactoryInterface $config_factory,
    SitemapParserService $sitemap_parser,
    AiGeneratorService $ai_generator
  ) {
    parent::__construct($config_factory);
    $this->sitemapParser = $sitemap_parser;
    $this->aiGenerator = $ai_generator;
  }  

FILE: src/Service/AiGeneratorService.php

  /**
   * The AI provider manager.
   *
   * @var \Drupal\ai\AiProviderPluginManager
   */
  protected $aiProvider;

  /**
   * The config factory.
   *
   * @var \Drupal\Core\Config\ConfigFactoryInterface
   */
  protected $configFactory;

  /**
   * The logger.
   *
   * @var \Drupal\Core\Logger\LoggerChannelInterface
   */
  protected $logger;

  /**
   * Constructs an AiGeneratorService object.
   *
   * @param \Drupal\ai\AiProviderPluginManager $ai_provider
   *   The AI provider plugin manager.
   * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
   *   The config factory.
   * @param \Drupal\Core\Logger\LoggerChannelFactoryInterface $logger_factory
   *   The logger channel factory.
   */
  public function __construct(
    AiProviderPluginManager $ai_provider,
    ConfigFactoryInterface $config_factory,
    LoggerChannelFactoryInterface $logger_factory
  ) {
    $this->aiProvider = $ai_provider;
    $this->configFactory = $config_factory;
    $this->logger = $logger_factory->get('ai_llms_txt_generator');
  }

FILE: src/Service/SitemapParserService.php

  /**
   * The HTTP client.
   *
   * @var \GuzzleHttp\ClientInterface
   */
  protected $httpClient;

  /**
   * The logger.
   *
   * @var \Drupal\Core\Logger\LoggerChannelInterface
   */
  protected $logger;

  /**
   * Constructs a SitemapParserService object.
   *
   * @param \GuzzleHttp\ClientInterface $http_client
   *   The HTTP client service.
   * @param \Drupal\Core\Logger\LoggerChannelFactoryInterface $logger_factory
   *   The logger factory service.
   */
  public function __construct(ClientInterface $http_client, LoggerChannelFactoryInterface $logger_factory) {
    $this->httpClient = $http_client;
    $this->logger = $logger_factory->get('ai_llms_txt_generator');
  }

New modules, which are compatible with Drupal 10 and higher versions are expected to include type declarations in property definitions, and use property promotion.

5. Fix the warnings/errors reported by PHP_CodeSniffer.

I would suggest enabling GitLab CI for the project, follow the Drupal Association .gitlab-ci.yml template and fix the PHP_CodeSniffer errors/warnings it reports.

phpcs --standard=Drupal,DrupalPractice --extensions=php,module,inc,install,test,profile,theme,info,txt,md,yml ai_llms_txt_generator/

FILE: ai_llms_txt_generator/README.md
-------------------------------------------------------------------------
FOUND 1 ERROR AND 4 WARNINGS AFFECTING 5 LINES
-------------------------------------------------------------------------
   3 | WARNING | [ ] Line exceeds 80 characters; contains 103 characters
   7 | WARNING | [ ] Line exceeds 80 characters; contains 105 characters
   9 | WARNING | [ ] Line exceeds 80 characters; contains 100 characters
  11 | WARNING | [ ] Line exceeds 80 characters; contains 82 characters
 190 | ERROR   | [x] Expected 1 newline at end of file; 0 found
-------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
-------------------------------------------------------------------------

FILE: ai_llms_txt_generator/ai_llms_txt_generator.info.yml
--------------------------------------------------------------------------------
FOUND 0 ERRORS AND 1 WARNING AFFECTING 1 LINE
--------------------------------------------------------------------------------
 1 | WARNING | Remove "version" from the info file, it will be added by drupal.org packaging automatically
--------------------------------------------------------------------------------

FILE: ai_llms_txt_generator/src/Form/LlmsTxtSettingsForm.php
--------------------------------------------------------------------------------
FOUND 1 ERROR AND 1 WARNING AFFECTING 2 LINES
--------------------------------------------------------------------------------
  44 | ERROR   | [x] Multi-line function declarations must have a trailing comma after the last parameter
 137 | WARNING | [ ] \Drupal calls should be avoided in classes, use dependency injection instead
--------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
--------------------------------------------------------------------------------

FILE: ai_llms_txt_generator/src/Controller/GenerateController.php
--------------------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
--------------------------------------------------------------------------------
 52 | ERROR | [x] Multi-line function declarations must have a trailing comma after the last parameter
v
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
--------------------------------------------------------------------------------

FILE: ai_llms_txt_generator/src/Service/SitemapParserService.php
--------------------------------------------------------------------------------
FOUND 0 ERRORS AND 2 WARNINGS AFFECTING 2 LINES
--------------------------------------------------------------------------------
  7 | WARNING | [x] Unused use statement
 64 | WARNING | [ ] Unused variable $namespaces.
--------------------------------------------------------------------------------
PHPCBF CAN FIX THE 1 MARKED SNIFF VIOLATIONS AUTOMATICALLY
--------------------------------------------------------------------------------

FILE: ai_llms_txt_generator/src/Service/AiGeneratorService.php
--------------------------------------------------------------------------------
FOUND 2 ERRORS AND 2 WARNINGS AFFECTING 4 LINES
--------------------------------------------------------------------------------
  10 | WARNING | [x] Unused use statement
  51 | ERROR   | [x] Multi-line function declarations must have a trailing comma after the last parameter
 104 | ERROR   | [x] Namespaced classes/interfaces/traits should be referenced with use statements
 142 | WARNING | [ ] \Drupal calls should be avoided in classes, use dependency injection instead
--------------------------------------------------------------------------------
PHPCBF CAN FIX THE 3 MARKED SNIFF VIOLATIONS AUTOMATICALLY
--------------------------------------------------------------------------------
🇮🇳India vishal.kadam Mumbai

1. FILE: encrypted_login.module

For a new module that aims to be compatible with Drupal 10/11, it is expected it implements hooks as class methods as described in Support for object oriented hook implementations using autowired services .

It requires increasing the minimum required Drupal 10 version, but that is not an issue, since not all the Drupal 10 releases are currently supported.

/**
 * @file
 * Main module file for Encrypted Login.
 */

The usual description for a .module file is “Hook implementations for the [module name] module”, where [module name] is the module name given in the .info.yml file.

2. FILE: src/Controller/EncryptedLoginController.php

Since that class does not use methods from the parent class, it does not need to use ControllerBase as parent class. Controllers do not need to have a parent class; as long as they implement \Drupal\Core\DependencyInjection\ContainerInjectionInterface, they are fine.

3. Every contributed project should provide a README file in the package. README.md template should be used to write that file.

🇮🇳India vishal.kadam Mumbai

Without content to review, this request can only be closed. Feel free to re-open it after posting content on drupal.org, committing code in a project, or creating a merge request for a project, for example.

🇮🇳India vishal.kadam Mumbai

Without content to review, this request can only be closed. Feel free to re-open it after posting content on drupal.org, committing code in a project, or creating a merge request for a project, for example.

🇮🇳India vishal.kadam Mumbai

I am changing priority as per Issue priorities .

🇮🇳India vishal.kadam Mumbai

I am changing priority as per Issue priorities .

🇮🇳India vishal.kadam Mumbai

I am changing priority as per Issue priorities .

🇮🇳India vishal.kadam Mumbai

I am changing priority as per Issue priorities .

🇮🇳India vishal.kadam Mumbai

I am changing priority as per Issue priorities .

🇮🇳India vishal.kadam Mumbai

I am changing priority as per Issue priorities .

🇮🇳India vishal.kadam Mumbai

I am changing priority as per Issue priorities .

🇮🇳India vishal.kadam Mumbai

I am changing priority as per Issue priorities .

🇮🇳India vishal.kadam Mumbai

I am changing priority as per Issue priorities .

🇮🇳India vishal.kadam Mumbai

I am changing priority as per Issue priorities .

🇮🇳India vishal.kadam Mumbai

I am changing priority as per Issue priorities .

🇮🇳India vishal.kadam Mumbai

1. FILE: README.md

The README file is missing the required section - Requirements.

deindex_unpublished_files

Prject name should be the name of the module given in its .info.yml file, not module's machine name.

2. FILE: deindex_unpublished_files.module

For a new module that aims to be compatible with Drupal 10 and Drupal 11, I would rather implement hooks as class methods as described in Support for object oriented hook implementations using autowired services .
It would require increasing the minimum Drupal 10 version supported, but Drupal 10.1 is no longer supported.

/**
 * @file
 * Contains hooks and logic for deindexing unpublished media files.
 */

The usual description for a .module file is “Hook implementations for the [module name] module”, where [module name] is the module name given in the .info.yml file.

3. FILE: src/Form/SettingsForm.php

ConfigFormBase::__construct() needs to be called. Since its parameters changed in Drupal 10.2, the project cannot be compatible with all the Drupal 10 releases and Drupal 11; it needs to require at least Drupal 10.2.

With Drupal 10 and Drupal 11, there is no longer need to use #default_value for each form element, when the parent class is ConfigFormBase: It is sufficient to use #config_target, as in the following code.

    $form['image_toolkit'] = [
      '#type' => 'radios',
      '#title' => $this->t('Select an image processing toolkit'),
      '#config_target' => 'system.image:toolkit',
      '#options' => [],
    ];

Using that code, it is no longer needed to save the configuration values in the form submission handler: The parent class will take care of that.

Production build 0.71.5 2024