0
私はSymfony 2.8をJMSシリアライザと併用しています。デシリアライザメソッドを使用すると、エンティティクラスのコンストラクタが呼び出されません。私のコードを参照してください。Jmsシリアライザはコンストラクタを呼び出さない
私service.yml
jms_serializer.unserialize_object_constructor:
class: AppBundle\Serializer\ObjectConstructor
私ObjectConstructor
<?php
namespace AppBundle\Serializer;
use JMS\Serializer\VisitorInterface;
use JMS\Serializer\Metadata\ClassMetadata;
use JMS\Serializer\DeserializationContext;
use JMS\Serializer\Construction\ObjectConstructorInterface;
class ObjectConstructor implements ObjectConstructorInterface
{
/**
* {@inheritdoc}
*/
public function construct(VisitorInterface $visitor, ClassMetadata $metadata, $data, array $type, DeserializationContext $context) {
$className = $metadata->name;
return new $className();
}
}
と私のクラスのコンストラクタ:
public function __construct() {
$this->dateTime = new \DateTime();
}
任意のアイデア?
のようなカスタムのコンストラクタサービスのエイリアスを作成する必要があります。 –