Symfony2:如何从Web服务构造实体

时间:2015-07-13 16:19:44

标签: php web-services rest symfony guzzle

我正在开发一个Web服务,其中的实体是从另一个ReST Web服务中检索的。

现在我从控制器中基于Guzzle的服务获取数据,并通过使用Serializer进行非规范化来保护我的实体

$customer_api = $this->container->get('customer_api');

$data = $customer_api->getCustomer([
    "customerId" => $id_customer,
]);

$customer = Customer::hydrate($data);

这里有水合物功能

public static function hydrate($data)
{
    $encoders = array(new JsonEncoder());
    $normalizers = array(new GetSetMethodNormalizer());

    $serializer = new Serializer($normalizers, $encoders);

    $entity = $serializer->denormalize($data, get_called_class());

    return $entity;
}

随着我对代码的深入了解,我开始需要一些实体来加载其他实体。但据我所知,将容器访问模型非常糟糕

如何重构这个,所以我可以使用模型构造函数

$customer = new Customer($id_customer);

0 个答案:

没有答案