Мне нравится использовать make:entity MyEntity для изменения объектов (добавления полей, геттеров, сеттеров). Обычно он дает вывод:
$ sym make:entity MyEntity
Your entity already exists! So let's add some new fields!
Однако для некоторых организаций это приведет к
$ sym make:entity SomeOtherEntity
[ERROR] The file "src/Repository/SomeOtherEntity.php" can't be generated because it already exists.
Разница между сущностями заключается в их расположении:
MyEntity находится в src/Entity
SomeOtherEntity находится в src/Domain/Model
Однако все сущности включены в конфиг, как я добавил
Model:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Domain/Model'
prefix: 'App\Domain\Model'
alias: Model
App:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
Например. миграции работают нормально с этим. Просто make:entity не получается.
Вопрос в том, могу ли я использовать make:entity для объектов, которые не находятся в местоположении по умолчанию?
Любой намек будет оценен.




Да, ты можешь.
Чтобы создать новый объект в другом пространстве имен с помощью команды make:entity, вы можете использовать команду:
php bin/console make:entity \\App\\Domain\\Model\\SomeOtherEntity
Если вы используете make:entity для существующих сущностей, вы должны добавить к команде флаг --regenerate.
Таким образом, команда для перегенерации геттеров и сеттеров для существующей сущности будет выглядеть немного иначе:
php bin/console make:entity --regenerate App\\Domain\\Model\\SomeOtherEntity
Для меня это была одна обратная косая черта! Пожалуйста, попробуйте и отредактируйте свой ответ, если это необходимо. С двойным слэшем выдавало ошибкуis not valid as a PHP class name (it must start with a letter or underscore, followed by any number of letters, numbers, or underscores)
Спасибо! Где жестко закодировано это местоположение по умолчанию (src/Entity)? Мы не можем изменить это? Потому что скоро я перенесу все свои объекты в src/Domain/Model.