Я пытаюсь использовать некоторые пакеты Sylius в проекте Laravel, который я создаю. Я добавил пакеты в свой проект с помощью композитора, и классы, похоже, нормально загружаются.
Теперь я хочу что-то с этим сделать. Возьмем простой пример из документации Sylius:
public function myAction()
{
$repository = $this->container->get('sylius.repository.address');
$manager = $this->container->get('sylius.manager.address'); // Alias to the appropriate doctrine manager service.
$address = $repository->createNew();
$address
->setFirstname('John')
->setLastname('Doe')
;
$manager->persist($address);
$manager->flush(); // Save changes in database.
}
Я хотел бы воссоздать что-то подобное в Laravel. Я создал простой тестовый маршрут, чтобы попытаться это сделать, но мои проблемы:
- Как получить репозиторий?
- Как получить услугу менеджера Doctrine?
Поэтому я также включил пакет laravel-doctrine в попытке получить службу менеджера, а затем просто вручную создал объект Product, так что теперь у меня есть:
Route::get('test', function() {
$entityManager = new Doctrine;
$product = new \Sylius\Component\Core\Model\Product;
$product->setName('Bla');
Doctrine::persist($product);
Doctrine::flush();
dd($product);
});
Это создает ошибку: Class "Sylius\Component\Core\Model\Product" sub class of "Sylius\Component\Product\Model\Product" is not a valid entity or mapped super class.
Я не уверен, куда идти дальше. Мое понимание Doctrine ограничено, но я понимал, что компоненты Sylius отделены от Symfony, и что я могу просто использовать их. Но кажется, что аннотации (или определения xml) не существуют для правильной работы Doctrine.
Любое направление приветствуется!