Интеграция пакетов Sylius в проект Laravel

Я пытаюсь использовать некоторые пакеты 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.

Любое направление приветствуется!


person kmc    schedule 22.07.2014    source источник


Ответы (1)


Laravel и Symfony совершенно разные. Вы не можете использовать пакет symfony в проекте laravel. Если вы хотите использовать Sylius, вы должны использовать фреймворк Symfony. Если вы хотите использовать laravel, вам нужно искать другую платформу электронной коммерции.

person Wouter J    schedule 22.07.2014
comment
В целом я с вами согласен. Обратите внимание, что он хочет использовать компоненты Силиуса, а не наборы. Компоненты Sylius можно установить и использовать в любом приложении PHP в соответствии с документом Sylius docs.sylius.org/en/latest/components_and_bundles/components/ - person Attila Fulop; 02.11.2017