Вы были почти там, и да, нижеследующие шаги еще не внесены в книгу - не знаю почему. Помимо вышеперечисленного вам необходимо изменить отображение в sylius.yml, которая присутствует в /vendor/sylius/sylius/src/Sylius/Bundle/CoreBundle/Resources/config/app/sylius.yml
Изменение в двух помещает
sylius_installer:
classes:
user:
# model: Sylius\Component\Core\Model\User # comment this out
model: Acme\YourBundle\Entity\User
sylius_resource:
resources:
sylius.user:
driver: doctrine/orm
classes:
# model: Sylius\Component\Core\Model\User # comment this out
model: Acme\YourBundle\Entity\User
для вашего первого вопроса:
- Вам нужно создать новый класс сущностей whic h расширяет исходную модель пользователя и помещает ее в приведенный выше фрагмент, поместите путь к вашему новому классу сущностей.
- В классе Entity вам необходимо определить свои новые поля, а затем их сеттеры и геттеры. Кроме того, вам необходимо определить интерфейс с тем же именем, что и класс сущности, такой как: UserInterface.php, просто введите объявления метода расширенного класса сущностей и предоставите свой объект реализации этого интерфейса.
- Также вам нужно создать файл сопоставления доктрины в Acme/YourBundle/Resources/config/doctrine/User.orm.xml. Вы можете сделать через документацию, представленную на странице sylius user documentation, чтобы увидеть шаги.
- Заключительный шаг - добавить сопоставление, которое вы уже сделали в app/config/config.yml.
Для вашего второго вопроса: Вы можете использовать аннотации в источниках вы определяете в своем собственном расслоении т.е. Acme/YourBundle но в sylius суб пучках, как ResourceBundle и т.д. Вы должны использовать то, что используется в нем уже.
Если есть лучший способ сделать это - пожалуйста, дайте мне знать!