РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
998 of 1361 menu

Метод toStream

Метод toStream класса ClientResponse возвращает тело HTTP-ответа в виде потока (stream resource). Это удобно, когда ответ содержит большой объём данных, и его не нужно загружать в память целиком. Метод не принимает параметров и возвращает ресурс, с которым можно работать через стандартные функции PHP, например stream_get_contents или fread.

Синтаксис

$res->toStream();

Пример

Давайте выполним запрос и получим тело ответа в виде потока:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Contracts\HttpClient\HttpClientInterface; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(HttpClientInterface $client): Response { $res = $client->request('GET', 'https://example.com/article'); $stream = $res->toStream(); return new Response(stream_get_contents($stream)); } } ?>

Результат выполнения кода:

"article"

Пример

Давайте запишем поток в файл с помощью stream_copy_to_stream:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; use Symfony\Contracts\HttpClient\HttpClientInterface; class ArticleController extends AbstractController { #[Route('/article/save', name: 'article_save')] public function save(HttpClientInterface $client): Response { $res = $client->request('GET', 'https://example.com/article'); $stream = $res->toStream(); $file = fopen('/tmp/article.txt', 'w'); stream_copy_to_stream($stream, $file); fclose($file); return new Response('saved'); } } ?>

Результат выполнения кода:

"user"

Смотрите также

  • класс ClientResponse,
    который представляет ответ HTTP-клиента
  • метод getContent,
    который возвращает тело ответа строкой
  • метод toArray,
    который возвращает тело ответа массивом
  • метод stream,
    который выполняет запрос и отдаёт поток
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить