获取 Doctrine 实体列表(UI 人口、访问权限等)

Getting a list of Doctrine Entities (UI population, access rights, etc.)

我正在尝试了解 Doctrine Entities 及其继承模型。这是我想要一些建议的情况;我有一个基础 class Box,并且根据应用程序,其他几个 classes 可以扩展 Box class (STI),例如:TextBoxImageBoxSliderBox 等。PortraitBox 可以扩展 ImageBox,等等。

获取所有 class 扩展 Box 的列表(以自动方式)的最佳方法是什么?例如,如果应用程序的用户需要选择要创建的 Box,或者管理员需要选择某些用户应可编辑的所有 Box,等等。

如果 UI 填充,是否有替代方法来使用 class 个名称填充 UI 元素?

我建议您在配置文件 中定义所有可能的值。有了它,您就不必实施复杂的自动发现,只要需求发生变化,自动发现就会失败,您甚至可以提供额外的信息。考虑这个例子:

boxes.yml

boxes:
    text:
        class: "My\FQCN\To\TextBox"
        displayName: "Text Box"
        editableBy: ["admin", "editor"]

    image:
        class: "My\FQCN\To\ImageBox"
        displayName: "Image Box"
        editableBy: ["admin", "photographer"]

    ...

现在,您只需实施域逻辑,以便您的应用程序理解配置文件。并且不要忘记在某处记录不同的配置可能性。

如果您需要动态访问控制,可以:使用二级标识符(例如 textimage)作为键来识别数据库中的框并分配权限.这些是唯一的内部名称,与 UI 和实际实施无关。