web-dev-qa-db-ja.com

applyUpdates()は非推奨です。とにかく、hook_install()で本当に必要ですか?

私は2つの基本フィールドを定義するcontribモジュールを維持していますが、これらはadmin config中に行われるため、インストール時にコンテンツタイプに追加されません。モジュールは

_// Add our base fields to the schema.
  \Drupal::service('entity.definition_update_manager')->applyUpdates();
_

それはhook_install()hook_uninstall()です。
この関数はcore 8.7で非推奨になりました。行を削除してインストールしてみましたが、正常に動作しているようです。

では、applyUpdates()の呼び出しを削除するだけで問題ないでしょうか?
Drupal 8)の初期の段階ではフィールドが削除されないという問題があったと思いますが、今はすべてうまくいくと思います。

参考までに、変更レコードは https://www.drupal.org/node/3034742 です。

編集:構成インスペクターは部分的にしか役に立ちません。フィールドは、コンテンツタイプフォームの表示を保存した後にのみ表示されます。アンインストール後もフィールドは表示されますが、とにかくそうだったと思います(これに関連するコアの問題があります)

3
Jonathan1055

リンクした変更レコードは、hook_install()ではなく、すでにインストールされているモジュールの更新フックに関するものです。

インストールフックでapplyUpdates()を必要としたことはありません。カスタムモジュールが新しいフィールドを追加する場合、モジュールが有効になると自動的に追加され、モジュールがアンインストールされると削除されます。データを含むベースフィールドにのみ問題がありましたが、Drupal 8.5以降に解決されました。この変更レコードを参照してください: 既存のデータを持つベースフィールドは、アンインストール済み

3
4k4