Puncte:0

Argumentul 6 transmis la Drupal\layout_builder\Plugin\Block\InlineBlock::__construct() trebuie să implementeze interfața

drapel cn

Faceam upgrade de la Drupal 8 la 9. Am instalat modulul „Stare upgrade” și am remediat așa cum sugerează acesta. Acum era timpul să facem upgrade la D9. Am schimbat pe composer.json.

"drupal/core-composer-scaffold": "^8.9.0",
"drupal/core-recommended": "^8.9.0",

La

"drupal/core-composer-scaffold": "^9.1.0",
"drupal/core-recommended": "^9.1.0",

Apoi a rulat următoarea comandă:

actualizare a compozitorului
drush cr
drush updb -y

După rularea actualizării, am primit Drupal 9.2.6. Când răsfoiați adresa URL, a afișat următoarea eroare:

TypeError: Argumentul 6 a fost transmis Drupal\layout_builder\Plugin\Block\InlineBlock::__construct() trebuie implementați interfața Drupal\Core\Session\AccountInterface, instanță de Drupal\Core\Logger\LoggerChannel dat, apelat /app/web/core/modules/layout_builder/src/Plugin/Block/InlineBlock.php pe linia 117 in Drupal\layout_builder\Plugin\Block\InlineBlock->__construct() (linia 95 de core/module/layout_builder/src/Plugin/Block/InlineBlock.php).

Am cautat pe google dar nu am gasit solutia. Orice sugestie este cu adevărat apreciată.

Puncte:-2
drapel cn

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;
    }
  
    /**

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.