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

alexy.74

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Добрый день.
В Меню-Общие Настройки--Seblod3.0 не работают кнопки "Сохранить" и "Закрыть". Выбрасывает на пустую страницу с надписью Forbidden. Все остальное работает нормально.
Скрины прилагаются. На скринах видны URL куда выбрасывает.

*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
*

alexy.74

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
скрины мелкие

- Вложения и другие параметры

*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
*

alexy.74

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Ясно, к хостеру
они в глухой обороне. Молчат.
А почему их вина?
В прошлый раз они говорили мне о настройках безопасности в СПанели, которые я якобы могу сам переключить. Не подскажите где и как?
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
они в глухой обороне. Молчат.
А почему их вина?
В прошлый раз они говорили мне о настройках безопасности в СПанели, которые я якобы могу сам переключить. Не подскажите где и как?
Конечно подскажу, но только когда организую свой хостинг, возьму за это денежку и всё будет работать
*

alexy.74

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
А что на счет регистрации пользователя. Не  регистрирует родной Джумловсий регистратор. А теперь вообще страница с регистрацией не работает (пусто).
Установил регистратор от SEBLOD и получаю после отправки формы  Ошибка
Не удалось зарегистрировать пользователя: Пожалуйста, укажите ваше имя.
Обнаружена ошибка.

Между тем SLogin через соц.сети регистрирует отлично.

« Последнее редактирование: 22.11.2018, 21:31:22 от alexy.74 »
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
А что на счет регистрации пользователя. Не  регистрирует родной Джумловсий регистратор. А теперь вообще страница с регистрацией не работает (пусто).
Установил регистратор от SEBLOD и получаю после отправки формы  Ошибка
Не удалось зарегистрировать пользователя: Пожалуйста, укажите ваше имя.
Обнаружена ошибка.

Между тем SLogin через соц.сети регистрирует отлично.


Создайте другую тему в разделе SEBLODло
*

alexy.74

  • Осваиваюсь на форуме
  • 25
  • 0 / 0


А вот если эту фотку добавлю, сможете найти ответ? (Хостер скорее всего ни при чем.
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
Хостер скорее всего ни при чем.
скорее всего при чем. срабатывает видимо какая то хостерная защита. можете установить ради интереса openserver локально у себя, развернуть копию сайта на нем, и посмотреть работает или нет
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
forbidden - да скорей всего к хостеру, но нужно проверить еще пару вещей:
1 - что пишет error.log апача или nginx?
2 - какая версия php? Если 7 и опустить до 5.6 - что будет?
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

alexy.74

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
forbidden - да скорей всего к хостеру, но нужно проверить еще пару вещей:
1 - что пишет error.log апача или nginx?
2 - какая версия php? Если 7 и опустить до 5.6 - что будет?
Кнопки Сохранить сохраняли (проверено), но выбрасывало на Forbidden.
А где смотреть логи?

Версия ПХП 7. Опускал и ниже - не помогало.
« Последнее редактирование: 24.11.2018, 22:26:05 от alexy.74 »
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
А где смотреть логи?
уточняйте у хостера
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Стоит ли ставить плагин rel="canonical" на Joomla 3

Автор azm1n

Ответов: 2
Просмотров: 1636
Последний ответ 09.05.2025, 12:39:18
от azm1n
Компонент вверху в админ панели

Автор cirip

Ответов: 1
Просмотров: 930
Последний ответ 14.05.2024, 13:50:32
от Гоша_Компьютерный
Сохранить не удалось из-за ошибки: Содержимое превышает допустимые лимиты

Автор R31rus

Ответов: 21
Просмотров: 5422
Последний ответ 27.03.2024, 16:46:13
от Gorilla
reCapcha во всплывающем окне - "Ошибка защиты от спама"

Автор Dannik

Ответов: 12
Просмотров: 2633
Последний ответ 14.09.2023, 18:59:24
от all_zer
Получить текущий номер страницы плагина "Разрыв страницы" (pagebreak)

Автор sertlan

Ответов: 1
Просмотров: 895
Последний ответ 12.06.2023, 18:14:09
от sertlan