Se datorează parametrilor din constructor
funcție publică __construct(){}
a inlocui
funcția publică __construct(array $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager, EntityDisplayRepositoryInterface $entity_display_repository, AccountInterface $current_user){}
cu
funcția publică __construct(array $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager, EntityDisplayRepositoryInterface $entity_display_repository, LoggerInterface $logger, AccountInterface $current_user = NULL) {}
Modificările sunt: LoggerInterface $logger
și AccountInterface $current_user = NULL
în constructor.
În timpul upgrade-ului Drupal la 9, veți vedea un fișier InlineBlock.php.rej (core/modules/layout_builder/src/Plugin/Block/InlineBlock.php.rej) care oferă detalii pentru a remedia problema.
JFI: Am făcut schimbarea direct la InlineBlock.php, vă rugăm să sugerați dacă există o modalitate alternativă de a-l corecta.
InlineBlock.php.rej fisierul contine:
***************
*** 81,90 ****
* Serviciul de gestionare a tipului de entitate.
* @param \Drupal\Core\Entity\EntityDisplayRepositoryInterface $entity_display_repository
* Depozitul de afișare al entității.
* @param \Drupal\Core\Session\AccountInterface $current_user
* Utilizatorul actual.
*/
- funcția publică __construct(array $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 ----
* Serviciul de gestionare a tipului de entitate.
* @param \Drupal\Core\Entity\EntityDisplayRepositoryInterface $entity_display_repository
* Depozitul de afișare al entității.
+ * @param \Psr\Log\LoggerInterface $logger
+ * O instanță de înregistrare.
* @param \Drupal\Core\Session\AccountInterface $current_user
* Utilizatorul actual.
*/
+ funcție publică __construct(array $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 ****
$utilizator_actual = \Drupal::Utilizator curent();
}
$this->currentUser = $current_user;
}
/**
--- 108.118 ----
$utilizator_actual = \Drupal::Utilizator curent();
}
$this->currentUser = $current_user;
+ if (!$logger) {
+ @trigger_error('Serviciul de înregistrare trebuie să fie transmis către InlineBlock::__construct(). A fost adăugat în drupal:9.2.0 și va fi necesar înainte de drupal:10.0.0.', E_USER_DEPRECATED);
+ $logger = \Drupal::service('logger.channel.layout_builder');
+}
+ $this->logger = $logger;
}
/**