【问题标题】:How to map prefetched data to models in PHP?如何将预取数据映射到 PHP 中的模型?
【发布时间】:2018-03-13 18:59:55
【问题描述】:

鉴于我已经通过外部服务检索了几行作为数组。在基于 Symfony2 和 Doctrine 构建的 PHP 应用程序中。

我将如何继续将这些数据映射到模型,以便我可以使用所有现有的业务逻辑?

*注意:*我不想自己为私有字段做反射,也不想改变模型。

我尝试研究教义内部,但很多似乎与查询逻辑紧密耦合。而且我知道我可以实现一个工厂方法来实例化我的数据集上的模型,但感觉就像我的供应商文件夹中已经有所有类等待使用。

【问题讨论】:

  • Doctrine Hydrator 是您正在寻找的“工具”吗?
  • 这正是我想要的。它是否也可以作为独立的或与 Symfony 一起使用而不是 Zend?

标签: php mysql doctrine symfony-2.8


【解决方案1】:

在 Symfony 中,您有 Serializer Component

您可以使用 composer 将其安装为standalone component

composer require symfony/serializer

序列化对象

$person = new \App\Entity\Person();
$person->setName('foo');
$person->setAge(99);
$person->setSportsman(false);

$jsonContent = $serializer->serialize($person, 'json');

// $jsonContent contains {"name":"foo","age":99,"sportsman":false}

echo $jsonContent; // or return it in a Response

反序列化对象

$person = $serializer->deserialize($jsonContent, \App\Entity\Person::class, 'json');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-17
    • 2012-02-25
    • 2015-11-12
    • 2013-05-05
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 2020-05-21
    相关资源
    最近更新 更多