Это связано с параметрами в конструкторе
общедоступная функция __construct(){}
заменять
общедоступная функция __construct(массив $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager, EntityDisplayRepositoryInterface $entity_display_repository, AccountInterface $current_user){}
с
общедоступная функция __construct (массив $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager, EntityDisplayRepositoryInterface $entity_display_repository, LoggerInterface $logger, AccountInterface $current_user = NULL) {}
Изменения: LoggerInterface $ logger
и AccountInterface $current_user = NULL
в конструкторе.
Во время обновления Drupal до 9 вы увидите файл InlineBlock.php.rej (ядро/модули/layout_builder/src/Plugin/Block/InlineBlock.php.rej), который содержит подробные сведения об устранении проблемы.
JFI: я внес изменения непосредственно в InlineBlock.php, пожалуйста, предложите, если есть альтернативный способ исправить это.
InlineBlock.php.rej файл содержит:
***************
*** 81,90 ****
* Служба диспетчера типов сущностей.
* @param \Drupal\Core\Entity\EntityDisplayRepositoryInterface $entity_display_repository
* Репозиторий отображения сущностей.
* @param \Drupal\Core\Session\AccountInterface $current_user
* Текущий пользователь.
*/
- публичная функция __construct(массив $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager, EntityDisplayRepositoryInterface $entity_display_repository, AccountInterface $current_user = NULL) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->entityTypeManager = $entity_type_manager;
--- 89 100 ----
* Служба диспетчера типов сущностей.
* @param \Drupal\Core\Entity\EntityDisplayRepositoryInterface $entity_display_repository
* Репозиторий отображения сущностей.
+ * @param \Psr\Log\LoggerInterface $logger
+ * Экземпляр регистратора.
* @param \Drupal\Core\Session\AccountInterface $current_user
* Текущий пользователь.
*/
+ общедоступная функция __construct(массив $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager, EntityDisplayRepositoryInterface $entity_display_repository, LoggerInterface $logger, AccountInterface $current_user = NULL) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->entityTypeManager = $entity_type_manager;
***************
*** 98 103 ****
$current_user = \Drupal::currentUser();
}
$this->currentUser = $current_user;
}
/**
--- 108 118 ----
$current_user = \Drupal::currentUser();
}
$this->currentUser = $current_user;
+ если (!$регистратор) {
+ @trigger_error('Служба регистратора должна быть передана в InlineBlock::__construct(). Она была добавлена в drupal:9.2.0 и потребуется до drupal:10.0.0.', E_USER_DEPRECATED);
+ $logger = \Drupal::service('logger.channel.layout_builder');
+ }
+ $this->logger = $logger;
}
/**