/
githubmirror
/
magento2
Обзор
Документация
Войти
/
githubmirror
/
magento2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.4-develop
lib/internal/Magento/Framework/Controller/Result/Json.php
88 строк
2 KB
Alexandra Zota
ACP2E-4019: CE copyright updates for 2.4.9-beta1
22 окт 2025, 17:47
22 окт 2025, 17:47
1b769b7
Код
Авторство
О чём код?
<?php /** * Copyright 2015 Adobe * All Rights Reserved. */ namespace Magento\Framework\Controller\Result; use Magento\Framework\App\Response\HttpInterface as HttpResponseInterface; use Magento\Framework\Controller\AbstractResult; use Magento\Framework\Translate\InlineInterface; /** * A possible implementation of JSON response type (instead of hardcoding json_encode() all over the place) * Actual for controller actions that serve ajax requests * * @api * @since 100.0.2 */ class Json extends AbstractResult { /** * @var \Magento\Framework\Translate\InlineInterface */ protected $translateInline; /** * @var string */ protected $json; /** * @var \Magento\Framework\Serialize\Serializer\Json */ private $serializer; /** * @param \Magento\Framework\Translate\InlineInterface $translateInline * @param \Magento\Framework\Serialize\Serializer\Json $serializer */ public function __construct( InlineInterface $translateInline, ?\Magento\Framework\Serialize\Serializer\Json $serializer = null ) { $this->translateInline = $translateInline; $this->serializer = $serializer ?: \Magento\Framework\App\ObjectManager::getInstance() ->get(\Magento\Framework\Serialize\Serializer\Json::class); } /** * Set json data * * @param mixed $data * @param boolean $cycleCheck Optional; whether or not to check for object recursion; off by default * @param array $options Additional options used during encoding * @return $this * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function setData($data, $cycleCheck = false, $options = []) { if ($data instanceof \Magento\Framework\DataObject) { $data = $data->toArray(); } $this->json = $this->serializer->serialize($data); return $this; } /** * @param string $jsonData * @return $this */ public function setJsonData($jsonData) { $this->json = (string)$jsonData; return $this; } /** * {@inheritdoc} */ protected function render(HttpResponseInterface $response) { $this->translateInline->processResponseBody($this->json, true); $response->setHeader('Content-Type', 'application/json', true); $response->setBody($this->json); return $this; } }