我认为标题要求一切.很简单,我有一个实体:
class User {
private $id;
private $name;
private $username;
}
Run Code Online (Sandbox Code Playgroud)
与所有适当的setter和getter.我有一个数组:
array( 'name' => 'joe', 'username' => 'shmoe' );
Run Code Online (Sandbox Code Playgroud)
我希望能够做到这样的事情:
Some\Unknown\Doctrine\Object::hydrateFromArray($array);
Run Code Online (Sandbox Code Playgroud)
显然创建一个函数来为它提供一个对象是很容易的,但是肯定教义必须有一些内容来实现这个目标吗?
Fat*_*moo 21
弄清楚了.给定一个存储库:
//for odm
$repo->getDocumentManager()->getHydratorFactory()->hydrate($entity, $array);
Run Code Online (Sandbox Code Playgroud)
我不知道是否可以为ORM做同样的事情,但我目前正在使用ODM.
您可以使用序列化程序组件:
$user = $serializer->deserialize($data, 'Namespace\User', 'json');
Run Code Online (Sandbox Code Playgroud)
http://symfony.com/doc/current/components/serializer.html#deserializing-an-object