Новости 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 Гость просматривают эту тему.
  • 4 Ответов
  • 2453 Просмотров
*

Blessure

  • Захожу иногда
  • 119
  • 4 / 0
Всем добрый день.

Столкнулся с очень интересной проблемой. Проблема была следущая...

На Личном сервере.
Инфа по машине.
Платформа:       Linux  2.6.32.2 #2 SMP Sun Jan 3 17:59:54 EET 2010 i686
Версия MySQL:    5.0.51a-24+lenny2
Сравнение БД:    utf8_general_ci
Версия PHP:    5.2.6-1+lenny4
Веб-сервер:    Apache/2.2.9 (Debian)
Интерфейс веб-сервер -> PHP:    cgi-fcgi
Версия Joomla:    Joomla! 1.5.14 Stable [ Wojmamni Ama Naiki ] 30-July-2009 23:00 GMT
User Agent:    Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6


Стоит JomSocial 1.2.024

Была проблема с
1.Загрузкой Аватара.
2.При создании Альбома ошибка.JFolder::create: Infinite loop detected(альбом при этом создавался)
3.В альбом нельзя было закачать фото.

После долгих дискусий стало понятно что вина (небуду перечислять их около 6) не в них а в файле php.ini который находится в корневой директории сайса (Joomla)

Проблему я чистично решил методом удаления этого файла так как были предложение по дабовлению строк и так далее....( после чего сайт либа зависал либо неработал)

Я решил взять и удалить его так как на другом хосте где стоит тоже самое файла такого нет вобще...



Так вот вопрос как он появится мог и если я его удалил как может это повлиять в дальнейшем..?

Всем спосибо за внимание.!
« Последнее редактирование: 03.02.2010, 15:26:11 от Blessure »
*

Aleks_El_Dia

  • Moderator
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
... на другом хосте где стоит тоже самое файла такого нет вобще...
На разных хостингах по разному. редко кто дает возможность редактирования файла php.ini
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

Blessure

  • Захожу иногда
  • 119
  • 4 / 0
А что он делает этот файл. Его небыло сначала после установки разных компонентов он появился и стало глючить..
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
А что он делает этот файл. Его небыло сначала после установки разных компонентов он появился и стало глючить..
Этот файл к компонентам не может быть привязан никаким боком :)
Это файл настройки PHP на сервере.
*

Blessure

  • Захожу иногда
  • 119
  • 4 / 0
Яснинко значит файл сгинигировал сервер.. Спосибо.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

как подключить собственный css-файл

Автор crlf

Ответов: 19
Просмотров: 5309
Последний ответ 27.08.2020, 10:13:38
от vasmed
[Решено] Проблема с авторизацией Invalid Token

Автор treX

Ответов: 100
Просмотров: 97081
Последний ответ 06.10.2019, 16:55:45
от PaLyCH
Нужно удалить старый тег Google Analitics и вставить новый

Автор daria_ab

Ответов: 3
Просмотров: 2528
Последний ответ 10.06.2019, 11:48:52
от daria_ab
JFolder::create: Невозможно создать каталог Внимание! - Не удалось переместить файл

Автор sayber

Ответов: 30
Просмотров: 67886
Последний ответ 14.07.2017, 12:05:37
от araiguma
Как проверить форму обратной связи [Решено]

Автор mafiozzzza

Ответов: 8
Просмотров: 6847
Последний ответ 30.05.2017, 11:34:11
от darkghost