Новости 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 Ответов
  • 1602 Просмотров

Привет,

Накопилось несколько вопросов. Буду благодарен за несколько ответов. Прошу прощения за занудство, но сам ответов найти не смог.

1) Главный вопрос Есть стандартная установка + русский ланг пак от смарта. Как сделать так, чтобы на фронтенде появился выпадающий список переключения языков или любой другой элемент управления языками? Joomla выбирает дефолтный язык на основе настроек браузера?

2) И ещё один вопрос по языкам. Где в инсталяхе модуля должны лежать переводы для фронтенда и админки? Как их прописать в module.xml? Для компонентов и темплейтов понятно, а вот для модулей что-то не получается.

3) Зачем нужен файл config.xml, например для компонента, если все, что в нем можно указать, и так указано в component.xml?

4) Как правильно подключить файл CSS к модулю? Только через JDocument?

5) Если ли где-нибудь схема базы данных Joomla с аннотациями к таблицам и полям?


Спасибо,
Костя
*

Lex

  • Завсегдатай
  • 1615
  • 274 / 1
1. Компонент JoomFish. Устанавливается в Расширения -> Менеджер языков.
2. Разницы нет.
3. Чтобы показать в настройках пункта меню в Параметры - Основные
4. Да
5. Не знаю. Тут поищи http://www.joomla.org/
Жизнь заставила учиться.
В личке на вопросы не отвечаю.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Пропали некоторые элементы интерфейса админки

Автор comax

Ответов: 43
Просмотров: 23883
Последний ответ 15.07.2016, 07:25:05
от SibUrsus
Mobile Joomla! как включить ?

Автор davidikul

Ответов: 3
Просмотров: 3630
Последний ответ 30.06.2016, 13:30:30
от NlCK
Как в SQL-запрос вставить элемент из ассоциативного массива?

Автор cvgh

Ответов: 20
Просмотров: 4766
Последний ответ 14.12.2012, 14:32:19
от cvgh
Как сделать стартовую страницу пустую, оставить только 3 языка, при нажатии на которые, человек попа

Автор RazarioAgro

Ответов: 4
Просмотров: 3668
Последний ответ 10.09.2012, 15:47:32
от RazarioAgro
Всплывающий элемент заезжает за видео

Автор Plazmodina

Ответов: 5
Просмотров: 1356
Последний ответ 24.06.2012, 05:43:55
от lubka-gubka