Программное создание терминов таксономии в Drupal 8: подробное руководство

Термины таксономии в Drupal 8 позволяют классифицировать и организовывать контент. Хотя вы можете создавать термины таксономии вручную через административный интерфейс, иногда вам может потребоваться создать их программным способом. В этой статье мы рассмотрим несколько методов программного создания терминов таксономии в Drupal 8, а также приведем примеры кода.

Метод 1: использование функцииentity_create()

use Drupal\taxonomy\Entity\Term;
$term = Term::create([
  'name' => 'Term Name',
  'vid' => 'vocabulary_machine_name',
]);
$term->save();

Метод 2: использование функцииentity_create() с дополнительными свойствами

use Drupal\taxonomy\Entity\Term;
$term = Term::create([
  'name' => 'Term Name',
  'vid' => 'vocabulary_machine_name',
  'field_description' => 'Term Description',
]);
$term->save();

Метод 3. Использование сервиса Taxonomy_term.create

use Drupal\Core\Entity\EntityTypeManagerInterface;
$termStorage = \Drupal::service('entity_type.manager')->getStorage('taxonomy_term');
$term = $termStorage->create([
  'name' => 'Term Name',
  'vid' => 'vocabulary_machine_name',
]);
$term->save();

Метод 4. Использование функцииentity_create() с пользовательским классом

use Drupal\taxonomy\Entity\Term;
class TermCreator {
  public function createTerm($name, $vid) {
    $term = Term::create([
      'name' => $name,
      'vid' => $vid,
    ]);
    $term->save();
    return $term;
  }
}
$termCreator = new TermCreator();
$term = $termCreator->createTerm('Term Name', 'vocabulary_machine_name');

Метод 5. Использование сервиса Taxonomy_term.create с собственным классом

use Drupal\Core\Entity\EntityTypeManagerInterface;
class TermCreator {
  protected $termStorage;
  public function __construct(EntityTypeManagerInterface $entityTypeManager) {
    $this->termStorage = $entityTypeManager->getStorage('taxonomy_term');
  }
  public function createTerm($name, $vid) {
    $term = $this->termStorage->create([
      'name' => $name,
      'vid' => $vid,
    ]);
    $term->save();
    return $term;
  }
}
$termCreator = new TermCreator(\Drupal::entityTypeManager());
$term = $termCreator->createTerm('Term Name', 'vocabulary_machine_name');

В этой статье мы рассмотрели несколько методов программного создания терминов таксономии в Drupal 8. Предпочитаете ли вы использовать функциюentity_create() или службу Taxonomy_term.create, у вас есть несколько вариантов на выбор в зависимости от ваших конкретных требований. Используя эти методы, вы можете автоматизировать создание терминов таксономии и оптимизировать рабочий процесс разработки Drupal.