App\Service\RequestTime; use App\ValueObject\RequestTime; use Symfony\Component\HttpFoundation\Request; interface ExtractorInterface { public function extract(Request $request): RequestTime; }
use App\ValueObject\RequestTime; use Symfony\Component\HttpFoundation\Request; readonly class Extractor implements ExtractorInterface { public function extract(Request $request): RequestTime { $timestamp = $request->server->getInt('REQUEST_TIME'); // $_SERVER['REQUEST_TIME'] と等価 $timezone = new \DateTimeZone(date_default_timezone_get()); return (new RequestTime("@{$timestamp}"))->setTimezone($timezone); } }