Добавление типов документов
Определение кастомных (пользовательских) типов документов в Pimcore осуществляется через конфигурацию путем статического сопоставления типа документа с именем PHP-класса.
До версии 10.6 единственным способом создания своих типов документов было их размещение в специальном пространстве имен Pimcore\Model\Document. Этот метод все еще работает, однако теперь документ может находиться в любом пространстве имен, если он правильно зарегистрирован.
Чтобы зарегистрировать новый тип документа, необходимо выполнить два шага:
1) Создайте класс документа
Класс документа должен наследоваться от Pimcore\Model\Document. Пространство имен может быть любым, но согласно правилам хорошего тона рекомендуется размещать документы в подпространстве Model\Document.
<?php
// src/Model/Document/Book.php
namespace App\Model\Document;
class Book extends \Pimcore\Model\Document
{
// Обязательно переопределите свойство type
protected string $type = 'book';
}
2) Зарегистрируйте документ в карте типов (Document Type Map)
Далее нам нужно обновить конфигурацию pimcore.documents.type_definitions.map, чтобы включить в нее наш документ. Это можно сделать в любом загруженном конфигурационном файле (например, /config/config.yaml), но если вы предоставляете редактируемый файл с бандлом, вы должны определить его в конфигурационном файле, который загружается автоматически. Пример:
# /config/config.yaml
pimcore:
documents:
type_definitions:
map:
book:
class: \App\Model\Document\Book
Не используйте это для переопределения классов
Секция type_definitions должна использоваться только для добавления новых типов документов.
Если ваша задача — переопределить существующий системный класс Pimcore, используйте вместо этого механизм pimcore:models:class_overrides.
Более подробную информацию об этом можно найти в разделе документации Переопределение моделей.
Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.