如何在另一个项目中重用 sylius 组件?

Posted

技术标签:

【中文标题】如何在另一个项目中重用 sylius 组件?【英文标题】:How to reuse sylius components in another project? 【发布时间】:2018-10-09 03:22:13 【问题描述】:

我最近了解了 Sylius 项目,并试图在一个单独的项目中重用它的组件(仅供研究)。

我的目标是测试我是否可以在单独的项目中使用 sylius 组件。只有几个组件。

按照文档 (http://sylius-older.readthedocs.io/en/latest/components/Order/basic_usage.html),我能够安装组件并使用它们的类,但我该如何处理数据库表?

我安装了学说并尝试映射类,但我做不到。

我正在考虑为每个表创建迁移(教义或 eloquent)并执行操作 (CRUD)。

非常感谢你们。

【问题讨论】:

【参考方案1】:

假设您已经使用 Composer 安装了 OrderBundle,您可能需要告诉 Doctrine 在哪里读取实体映射。对于 Sylius 的 OrderBundle,它们以 xml 文件的形式存储在 Resources/config/doctrine/models 中,例如Order.orm.xml。如果您查看sample configuration in the DoctrineBundle-recipe,您可以找到手动映射的参考。在您的情况下,它可能看起来应该是这样的:

# app/config/config.yml (in Symfony 3.4)
# config/packages/doctrine.yaml (in Symfony 4)
doctrine:
    dbal:
        ...
    orm:
        mappings:
            SyliusOrderBundle:
                is_bundle: false
                type: xml
                dir: '%kernel.project_dir%/../vendor/sylius/order-bundle/Resources/config/doctrine/models'
                prefix: 'Sylius\Component\Order\Model'
                alias: SyliusOrder

您可能需要对此进行调整,例如如果你有一个 Symfony 4 应用程序,但是有了这个,你应该能够使用默认的 Doctrine 命令创建适当的模式。您可能还需要在doctrine.orm 下调整auto_mapping,如果您这样做,可能还需要手动映射您自己的实体。

【讨论】:

非常感谢,您已经解决了我的问题。

以上是关于如何在另一个项目中重用 sylius 组件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Sylius 中自定义实体属性?

我如何在没有 symfony 的项目中重用我的 symfony 实体

如何编写可重用的组件/模块?

如何重用带有钩子的 React 库

如何使用 Sylius 实现 Klarna 支付网关?

使用 Sylius 0.16 和 Payum 实施异地支付网关时如何完成订单