Вам нужно будет обновить конфигурацию вашего Bundle, чтобы зарегистрировать как папку, в которой вы храните свои сущности, так и, возможно, события жизненного цикла.При размещении их в src/Entity
в этом нет необходимости, поскольку DoctrineBundle уже предоставляет для этого конфигурацию по умолчанию.Вот почему в вашем config/packages/doctrine.yaml
у вас есть следующее:
doctrine:
orm:
mappings:
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
Вы должны отслеживать, как DoctrineBundle считывает и обрабатывает эту конфигурацию из Configuration.php , а затем, как Service Containerнастраивается из этих значений конфигурации, просматривая DoctrineExtension.php .Вы, возможно, можете опустить файл конфигурации, но вашему MyBundleExtension
необходимо обновить Doctrine-сервисы с вашими классами сущностей изнутри комплекта.
В качестве альтернативы вы можете посмотреть на рецепты и вместо того, чтобы хранить сущность в вашем комплекте.скопируйте его в каталог src / всякий раз, когда ваш пакет установлен.Из-за того, как работают рецепты, ваш пакет должен быть с открытым исходным кодом для этого, и вы должны будете предоставить contrib-рецепт для этого пакета .
edit: другим вариантом может быть предоставлениеполный скелет для вашей базовой настройки, так что вам не нужно беспокоиться о пакетах и независимой конфигурации, а просто предоставьте базовое начальное приложение с настройкой по умолчанию, которую вы считаете полезной.