回答:
NodeTypeクラスを使用して、すべてのNodeTypeエンティティ(構成エンティティ)をロードできます。
$node_types = \Drupal\node\Entity\NodeType::loadMultiple();
// If you need to display them in a drop down:
$options = [];
foreach ($node_types as $node_type) {
$options[$node_type->id()] = $node_type->label();
}
8.7の時点で廃止されていない別のDrupalヘルパー関数があります。node_type_get_names()
戻り値:
string []ノードタイプ名をキーとするノードタイプラベルの配列。
loadMultiple()
、load()
、およびcreate()
方法は、使用したいというエンティティタイプのクラスでそれらを呼び出すことで、それは種類や用途は上記の動的ん割り出し。これは少し短くて使いやすいですが、可能な場合は注入されたサービスを使用することをお勧めします。そのため、サービス/コントローラー/プラグインでは、エンティティタイプマネージャーを注入してから使用します。より簡単な(ユニット)テストが可能ですが、結果はほぼ同じです。