/** * @test */ public function test_evaluate_field_with_formatting() { $obj = new Target\PrivateClass(new \DateTime('2015/12/13 14:15:36', new \DateTimeZone('Asia/Tokyo')), 'bb', 999, 12345, 'xyz'); $evaluator = new Strategy\ObjectFieldEvaluator($obj, []); $formatter = new \JsonEncoder\Formatter\DateTimeFormatter(); $this->assertEquals(['a' => '2015-12-13T14:15:36+0900', 'b' => 'bb'], $evaluator->evaluate(['a', 'b'], [\DateTime::class => $formatter])); }
/** * {inheritdoc} */ public function serialize($value, array $formatters) { if (!is_object($value)) { return []; } $evaluator = new ObjectFieldEvaluator($value); if ($this->rule->isFieldAllIncludes()) { $this->rule->includes($evaluator->listFields()); } return $evaluator->evaluate($this->rule->listIncludeFields(), $formatters); }