我正在研究Apigility作为向我的ZF2应用程序添加REST服务的方法,但我发现它使用了水合器。我的域对象由工厂创建,它们验证和过滤数据,添加代理等,然后实例化并返回所需类型的对象。工厂通过构造函数注入域对象数据。
在我看来,我需要更改Apigility如何创建域对象的工作流程。在我的情况下,它需要实例化一个工厂并将输入提供给它。这听起来不错吗?我从哪里开始?
答案 0 :(得分:0)
我认为这应该不是问题。
您可以在your resource listener instance内注入资源工厂。在侦听器的方法(create
,update
等)中,您可以使用工厂完成其工作(例如创建资源),然后返回Hal\Entity
或{{ 1}}结果。
Hydrator主要用于Hal\Collection
插件内部,用于在渲染(嵌套)资源时提取数据。如果您直接从听众处返回Hal
或Hal\Entity
个实例,则插件不需要任何加水器。唯一的条件是Hal资源的内容是json可序列化的(因此没有复杂的对象)。