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

katerina37

  • Захожу иногда
  • 95
  • 0 / 0
  • он прилетел.....
Внешний доступ к MySQL
« : 28.11.2011, 11:13:31 »
У меня возникла проблема при переносе сайта с локалки на хостинг. Вот что прислали хостеры:
Внешний доступ к MySQL закрыт. Вам необходимо подключаться локально
через php на порт 3307, либо на сокет /tmp/mysq4.sock
Как быть? Что вписывать в файл configuration.php в var host?
Впервые с этим столкнулась и не знаю даже, где копать....
*

Aleks_El_Dia

  • Moderator
  • 3671
  • 353 / 0
  • AEDStudio Joomla! Direction
Re: Внешний доступ к MySQL
« Ответ #1 : 28.11.2011, 14:11:20 »
Если lochost не срабатывает, спросите у тех.поддержки адрес MySQL
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

katerina37

  • Захожу иногда
  • 95
  • 0 / 0
  • он прилетел.....
Re: Внешний доступ к MySQL
« Ответ #2 : 28.11.2011, 14:15:47 »
да, localhost сработал, спасибо, теперь проблема с кодировкой.....Видимо из-за того, что сайт сделан в mysql-5, а на хостинге mysql-4 и дефолтная кодировка windows 1251 - все полетело....Пока разобраться не могу
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Доступ к бд

Автор oraden

Ответов: 6
Просмотров: 5399
Последний ответ 10.05.2019, 13:02:26
от pavel2950
Поменял доменное имя - доступ к админке

Автор kirill-juk

Ответов: 1
Просмотров: 1631
Последний ответ 06.02.2018, 12:53:39
от SeBun
Ошибка при загрузке модулей:MySQL server has gone away

Автор svskach

Ответов: 13
Просмотров: 6578
Последний ответ 31.01.2018, 10:56:15
от Evrokub
Нужна помощь - Unable to connect to the database:Could not connect to MySQL

Автор SUROVblY

Ответов: 0
Просмотров: 1544
Последний ответ 10.09.2015, 11:53:45
от SUROVblY
Tooltip - Всплывающая подсказка и внешний текст

Автор Alifer

Ответов: 7
Просмотров: 4210
Последний ответ 02.10.2014, 13:03:13
от slikNET