Новости Joomla

Обработка HTTP ответа в Joomla 6+. Изменения по сравнению с Joomla 3 - Joomla 5

👩‍💻 Обработка HTTP ответа в Joomla 6+. Изменения по сравнению с Joomla 3 - Joomla 5.В Joomla для выполнения внешних запросов из PHP к сторонним API используется класс Joomla\Http\Http напрямую или же Joomla\Http\HttpFactory, который возвращает для работы преднастроенный по умолчанию класс Http. О работе с HTTP-запросами подробно рассказывалось в статье 2021 года Создание внешних запросов с использованием HttpFactory (Joomla). Некоторые изменения касаются работы с ответами на запросы. Например, наш запрос:
use Joomla\Http\HttpFactory;$http = (new HttpFactory)->getHttp($options, ['curl', 'stream']);$response = $http->get('https://any-url.ru/api/any/endpoint');
Раньше можно было получить код ответа или тело ответа как свойство $response - $response->code или $response->body. Однако, Joomla, начиная с Joomla 4 во многом переходит на стандарты PSR. В частности для работы с HTTP-ответами - на PSR-7. Также хорошая статья на Хабре о PSR-7: PSR-7 в примерах.
Прямое обращение к свойствам code, headers, body объявлено устаревшим в Joomla 6.0.0 и обещают удалить в Joomla 7.0.0.
Вместо этого нужно работать с HTTP-ответом по стандартам PSR-7. Код ответа.Было $response->code. Стало $response->getStatusCode().Заголовки ответа.Было $response->headers. Стало $response->getHeaders().Тело ответа.Было $response->body. Стало (string)$response->getContents().В тело ответа теперь приходит не строка, а поток - объект класса Laminas\Diactoros\Stream. Поэтому его нужно привести к строке (если это json, к примеру): (string)$response->getContents(). Чаще всего в коде Joomla встречается именно такой вариант. Однако, есть и вариант с перемещением указателя чтения на начало потока:
// Получили ответ в виде потока$stream = $response->getBody();// "перемотали" на начало$stream->rewind();// Получили строковый ответ$json = $stream->getContents();
В итоге результат одинаковый.@joomlafeed#joomla #разработка #php

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!

Quantum Manager нужен сообществу, а автору нужна ваша поддержка!Файловый менеджер Quantum — одно...

Файловый менеджер Quantum — одно из самых популярных решений для Joomla, созданное разработчиком из сообщества Joomla, Дмитрием Цымбалом (@tsymbalmitia). Он делает Quantum удобным, безопасным и современным, обновляет его, исправляет уязвимости и отвечает пользователям — всё это в свободное от основной работы время.

Теперь настал момент для следующего шага: развитие проекта требует больше времени и ресурсов.

0 Пользователей и 1 Гость просматривают эту тему.
  • 1 Ответов
  • 1626 Просмотров
*

Denis_

  • Захожу иногда
  • 111
  • 0 / 0
ссылка на две строки
« : 28.01.2010, 11:55:44 »
как сделать, чтобы ссылка в меню была на две строки?

[вложение удалено Администратором]
*

nOObMeister

  • Захожу иногда
  • 126
  • 6 / 0
  • хД)))
Re: ссылка на две строки
« Ответ #1 : 28.01.2010, 19:26:14 »
немного грубый но действенный способ. создаешь два пункта меню ведущие на одну и ту же страницу. Допустим один пункт главное, второй пункт меню. Единтсвенное что при наведении мышки на пункт (hover) будет менять цвет только один пункт меню. Если эта опция задействована.

Второй способ через CSS просто задать определенную ширину блока меню, тогда перенос по словам будет происходить автоматом.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

ссылка на неопубликованный материал

Автор snoopik

Ответов: 9
Просмотров: 7171
Последний ответ 21.03.2019, 04:50:20
от vasmed
Убрал в настройках материалов "Заголовок как ссылка" - "нет". И в разделе ссылки с заголовков исчезл

Автор Adrian1111

Ответов: 6
Просмотров: 3349
Последний ответ 22.03.2018, 22:17:44
от palexa
Изображение-ссылка в материале

Автор Omedius

Ответов: 4
Просмотров: 2490
Последний ответ 02.07.2017, 21:11:10
от vipiusss
Перестала работать ссылка на архив!

Автор denwin0

Ответов: 0
Просмотров: 1543
Последний ответ 02.07.2014, 09:38:54
от denwin0
Ссылка вместо материала в блоге категирии

Автор kant2014

Ответов: 0
Просмотров: 1473
Последний ответ 25.04.2014, 10:02:11
от kant2014