【问题标题】:Two plugin modify one doctrine entity for sylius两个插件为 sylius 修改一个学说实体
【发布时间】:2018-09-21 18:28:46
【问题描述】:

我开始研究 Sylius,但我找不到我的问题的答案。

例如

我有两个插件。插件一,插件二。将其安装到 composer trought 私有存储库中(例如:saits) 我有一个 Doctrine Entity Sylius\Component\Product\Model\Product

我的插件上的每个自定义模型 Sylius\Component\Product\Model\Product.

例如

PluginOne - 将字段 guid 添加到实体中 PluginTwo - 将归档的 content_hash 添加到实体中

我该怎么做? 我遵循这个文档 https://docs.sylius.com/en/1.2/customization/model.html 但找不到我的问题的答案。

【问题讨论】:

  • 你能指定这些插件,它们使用一个实体吗?我想重现这种情况
  • @Dr. X 我认为这是一个关于 Sylius 概念的理论问题。我想知道同样的事情。

标签: sylius


【解决方案1】:

我开发了几个可重复使用的 Sylius 插件。我发现扩展核心模型最方便的方法是遵循以下规则:

  1. Sylius 核心模型只能在您项目的 src/ 文件夹中扩展。
  2. 第三方插件可能具有核心模型扩展的特征。
  3. 这应该在 3rd 方插件的 README.md 中描述

例如:

namespace AppBundle\Entity;

use Acme\OrderPlugin\Model\OrderInterface as AcmeOrderPluginOrderInterface;
use Acme\OrderPlugin\Model\OrderTrait as AcmeOrderPluginTrait;
use Acme\PromotionPlugin\Model\Traits\OrderGiftPromotionTrait as AcmePromotionPluginGiftPromotionTrait;
use Sylius\Component\Core\Model\Order as BaseOrder;

class Order extends BaseOrder implements AcmeOrderPluginOrderInterface
{
    use AcmeOrderPluginTrait;
    use AcmePromotionPluginGiftPromotionTrait;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多