Symfony - 从 YAML 中提取的只读实体

Symfony - Read-only entities hydrated from YAML

是否可以有简单的只读实体,可以与其他学说实体关联,但它们的数据存储在文本 ( YAML ) 文件中?

假设我有一个 product 实体,我想为每个产品设置一个类别。但是现在,我只有很少的类别(并且不需要编辑或添加),所以我不会 want/need 在数据库中创建一个拥有自己的 table 的完整学说实体。

所以我创建了一个非常简单的实体:

class ProductCategory
{

    private $id;
    private $name;

    public function getId()
    {
        return $this->id;
    }

    public function getName()
    {
        return $this->name;
    }

}

现在我想创建一个简单的 YAML 文件来存储数据,如下所示:

0: Cheese
1: Meat
2: Dairy Products
....

然后我想设置从 product 实体到 ProductCategory 实体的 ManyToOne 关系。

这可能吗? 而且,如何 "query" 类别? (假设我想列出以某个字母开头的所有类别)

'Why'你问? 好吧,正如我所说,现在我只有很少的类别,但也许有一天我想添加更多类别,甚至为它们提供 CRUD 编辑器等等,然后我可以轻松地将其转换为完整的学说实体。

或者关于如何解决这个问题的任何其他建议?

已经有一个名为 Alice 的图书馆可以提供您正在寻找的东西:

这样你就可以批量创建随机测试数据,并且仍然可以像往常一样使用 Doctrine。

如果您想手动执行此操作,那么解决连接实体的问题将会很痛苦。最好的办法是将它们全部保存在数组中,并将 id 用作键,但即便如此,您最终可能还是会编写大量胶水代码来连接实体。